什么是反序列化漏洞?
漏洞形成的根本原因就是程序沒(méi)有對(duì)用戶輸入的反序列化字符串進(jìn)行檢測(cè),導(dǎo)致反序列化過(guò)程可以被惡意控制,進(jìn)而造成代碼執(zhí)行、GetShell 等一系列不可控的后果。反序列化漏洞并不是PHP 特有的,也存在于Java、Python 語(yǔ)言中,其原理基本相同。
反序列化是字節(jié)流轉(zhuǎn)對(duì)象的過(guò)程,如果這個(gè)過(guò)程中沒(méi)有對(duì)用戶輸入的字符串進(jìn)行檢測(cè),就可能造成代碼執(zhí)行、RCE漏洞,php、Java中都有反序列化漏洞,由于Java中皆可對(duì)象,所以Java的反序列化漏洞比php更常見(jiàn)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-698239.html
php魔術(shù)方法
php規(guī)定以兩個(gè)下劃線(__)開(kāi)頭的方法都保留為魔術(shù)方法
以__開(kāi)頭的函數(shù),是PHP 中的魔術(shù)方法。類(lèi)中的魔術(shù)方法,在特定情況下會(huì)自動(dòng)調(diào)用。即使魔術(shù)方法在類(lèi)中沒(méi)有被定義,也是真實(shí)存在的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-698239.html
- __destruct(),銷(xiāo)毀對(duì)象時(shí)會(huì)自動(dòng)調(diào)用,反序列化時(shí)也會(huì)被自動(dòng)調(diào)用
- __construct(),創(chuàng)建對(duì)象時(shí)會(huì)自動(dòng)調(diào)用
- __get(訪問(wèn)后門(mén)),問(wèn)私有成員屬性的時(shí)候自動(dòng)觸發(fā)(__get 函數(shù)只能進(jìn)行查看無(wú)法進(jìn)行修改。)
- __set(),對(duì)私有成員屬性進(jìn)行設(shè)置值時(shí)自動(dòng)觸發(fā)
- __isset,對(duì)私有成員屬性進(jìn)行 isset 進(jìn)行檢查時(shí)自動(dòng)觸發(fā)
- __unset,對(duì)私有成員屬性進(jìn)行 unset 進(jìn)行檢查時(shí)自動(dòng)觸發(fā)
到了這里,關(guān)于php魔術(shù)方法和反序列化漏洞的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!