PHP代碼審計之反序列化漏洞
什么是反序列化?
序列化就是將對象轉(zhuǎn)化為字節(jié)流,便于保存在文件,內(nèi)存,數(shù)據(jù)庫中;反序列化即將字節(jié)流轉(zhuǎn)化為對象。
也就是把數(shù)據(jù)轉(zhuǎn)化為一種可逆的數(shù)據(jù)結(jié)構(gòu),再把這種可逆的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化回數(shù)據(jù),這就是序列化與反序列化。
反序列函數(shù):
serialize()?//??將一個對象轉(zhuǎn)換成一個字符串
unserialize()??//將字符串還原成一個對象? ?
漏洞原理:
PHP將所有以__ (兩個下劃線)開頭的類方法保留為魔術(shù)方法。所以在定義類方法時,除了上述魔術(shù)方法,建議不要以__為前綴。
常見的反序列化漏洞中出現(xiàn)的魔術(shù)方法及其觸發(fā)條件:
__construct()當(dāng)一個對象創(chuàng)建時被調(diào)用
__destruct()當(dāng)一個對象銷毀時被調(diào)用
__toString()當(dāng)一個對象被當(dāng)作一個字符串時使用
__sleep() 在對象在被序列化之前運(yùn)行
__wakeup() 如果有,在反序列化之前調(diào)用
?課程推薦
《PHP代碼審計之反序列化漏洞》,通過本課程您將學(xué)習(xí)到,反序列化漏洞對象注入代碼審計、反序列化POP鏈構(gòu)造基礎(chǔ)審計、反序列化POP鏈構(gòu)造之phpggc、session反序列化漏洞審計、MyuCMS源碼phar反序列化漏洞審計、Typecho反序列化getshell審計、Yii2反序列化POP鏈挖掘?qū)徲?,上述相關(guān)工具使用、實戰(zhàn)代碼分析、漏洞代碼分析、漏洞復(fù)現(xiàn)、實例審計等內(nèi)容。
視頻地址:https://www.aqniukt.com/my/course/13996
?▼識別二維碼直通課程頁面
