對于現(xiàn)在的互聯(lián)網(wǎng)產(chǎn)品你了解多少?有沒有想過自己有一天會被黑客攻擊,自己的人身財產(chǎn)得不到保障,不過現(xiàn)在web安全推出以后得到了改善,今天小猿圈web安全老師就為大家分享web安全的一個知識點,希望對于你的學習有所幫助,web安全之序列化與反序列化漏洞。
1.序列化簡介
將原本的數(shù)據(jù)通過某種手段進行“壓縮”,并且按照一定的格式存儲的過程就可以稱之為序列化。
如:通常情況下為了前后端之間的傳輸方便我們將其json_encode了,然后我們后端如果接受到這個json數(shù)據(jù),還能在json_decode回來,再通俗一點就是tx目前不支持直接傳輸文件夾,我們必須要壓縮一下然后傳輸,對方接收到需要解壓才能看到你的數(shù)據(jù)。
1.1序列化與反序列化的區(qū)別
序列化就是將對象用字符串表示,反序列化就是將序列化字符串轉(zhuǎn)換為對象。
注意:序列化的對象可以是class也可以是Array,string等其他對象。
2.PHP序列化
PHP的所謂的序列化也是一個將各種類型的數(shù)據(jù),壓縮并按照一定格式存儲的過程,他所使用的函數(shù)是serialize()。
3.PHP序列化三種權(quán)限
序列化為了把這個類的信息完全壓縮,自然把屬性的權(quán)限考慮了進去。
將序列化的內(nèi)容輸入到txt文件里。
可以看到三個權(quán)限表示的方式是不一個樣的。
flag作為私有屬性,在其前面加了.類名.。
test作為保護屬性,在其前面加了.*.。
而test1公有屬性則,按照常規(guī)理解的方式。
所以總結(jié)如下:
在序列化的過程中:
私有屬性:.類名.屬性名
如:s:10:"testflag";
保護屬性:.*.屬性名
如:s:7:"*test";
公有屬性:屬性名
如:test1
4.序列化利用條件
根據(jù)上面的序列化輸出:
在序列化數(shù)據(jù)中我們,無法還原類中具有的方法。
所以這就引出了序列化的兩個條件。
1.當前所利用的作用域下面必須要有該類存在,該類中必須要含有unserialize()函數(shù)。
2.我們只能控制類中的屬性來攻擊。
因為沒有序列化方法,我們能控制的只有類的屬性,因此類屬性就是我們唯一的攻擊入口。
以上就是小猿圈web安全講師對web安全之序列化與反序列化漏洞的簡單介紹,通過以上的介紹你是否對web安全你有了一定的了解呢,是否有想過學習web安全呢?但是苦于自己沒有合適的平臺,那么久來小猿圈看看吧,里面有你需要的知識。