資源共享吧|易語(yǔ)言論壇|逆向破解教程|輔助開(kāi)發(fā)教程|網(wǎng)絡(luò)安全教程|www.rigasin.com|我的開(kāi)發(fā)技術(shù)隨記

標(biāo)題: PHP反序列化漏洞代碼審計(jì) [打印本頁(yè)]

作者: show0p    時(shí)間: 2019-4-11 17:27
標(biāo)題: PHP反序列化漏洞代碼審計(jì)
PHP反序列化漏洞代碼審計(jì)1、什么是序列化



A、PHP網(wǎng)站的定義:

所有php里面的值都可以使用函數(shù)serialize()來(lái)返回一個(gè)包含字節(jié)流的字符串來(lái)表示。unserialize()函數(shù)能夠重新把字符串變回php原來(lái)的值。 序列化一個(gè)對(duì)象將會(huì)保存對(duì)象的所有變量,但是不會(huì)保存對(duì)象的方法,只會(huì)保存類的名字。


按個(gè)人理解就是:

serialize()將一個(gè)對(duì)象轉(zhuǎn)換成一個(gè)字符串,unserialize()將字符串還原為一個(gè)對(duì)象。
當(dāng)然從本質(zhì)上來(lái)說(shuō),反序列化的數(shù)據(jù)本身是沒(méi)有危害的,用戶可控?cái)?shù)據(jù)進(jìn)行反序列化是存在危害的。


B、PHP反序列化

php允許保存一個(gè)對(duì)象方便以后重用,這個(gè)過(guò)程被稱為序列化。為什么要有序列化這種機(jī)制呢?在傳遞變量的過(guò)程中,有可能遇到變量值要跨腳本文件傳遞的過(guò)程。試想,如果為一個(gè)腳本中想要調(diào)用之前一個(gè)腳本的變量,但是前一個(gè)腳本已經(jīng)執(zhí)行完畢,所有的變量和內(nèi)容釋放掉了,我們要如何操作呢?難道要前一個(gè)腳本不斷的循環(huán),等待后面腳本調(diào)用?這肯定是不現(xiàn)實(shí)的。因?yàn)檫@樣的操作,在小項(xiàng)目還好,在大項(xiàng)目里是極其浪費(fèi)資源的。但是如果你將一個(gè)對(duì)象序列化,那么它就會(huì)變成一個(gè)字符串,等你需要的時(shí)候再通過(guò)反序列化轉(zhuǎn)換回變了變量,在進(jìn)行調(diào)用就好了,在這樣就剩了資源的使用。


2、理解PHP反序列化漏洞
PHP類中有一種特殊函數(shù)體的存在叫魔法函數(shù),magic函數(shù)命名是以符號(hào)__開(kāi)頭的,比如 __construct, __destruct, __toString, __sleep, __wakeup等等。這些函數(shù)在某些情況下會(huì)自動(dòng)調(diào)用,比如__construct當(dāng)一個(gè)對(duì)象創(chuàng)建時(shí)被調(diào)用,__destruct當(dāng)一個(gè)對(duì)象銷毀時(shí)被調(diào)用,__toString當(dāng)一個(gè)對(duì)象被當(dāng)作一個(gè)字符串使用。
而在反序列化時(shí),如果反序列化對(duì)象中存在魔法函數(shù),使用unserialize()函數(shù)同時(shí)也會(huì)觸發(fā)。這樣,一旦我們能夠控制unserialize()入口,那么就可能引發(fā)對(duì)象注入漏洞。


3、PHP反序列化漏洞利用的前提
a.unserialize()函數(shù)的參數(shù)可控;
b.php文件中存在可利用的類,類中有魔術(shù)方法





作者: Catsay    時(shí)間: 2019-4-11 17:46
感謝分享 正好反序列化漏洞不是很清楚
作者: nanfangcike    時(shí)間: 2019-5-10 17:59
11111111
作者: lanni7    時(shí)間: 2019-5-13 10:20
PHP反序列化漏洞代碼審計(jì)
作者: cjyes    時(shí)間: 2019-5-13 10:29
我發(fā)現(xiàn)我一天也離不開(kāi)資源共享吧了!
作者: Linuxed    時(shí)間: 2019-8-16 00:57
謝謝樓主分享
作者: KeyboArd    時(shí)間: 2020-3-19 23:57
super
作者: 5istudy    時(shí)間: 2020-3-26 20:18
感謝分享
作者: kevin    時(shí)間: 2020-4-16 18:18
多謝分享
作者: 1700311361    時(shí)間: 2020-4-18 10:27
dfs
作者: 1393721977    時(shí)間: 2020-4-25 00:55
看看
作者: zxcxzxc    時(shí)間: 2020-4-28 23:51
6666666666666
作者: GoodStudy    時(shí)間: 2020-4-29 01:51
我要學(xué)代碼審計(jì),我要挖0day
作者: 2948522338    時(shí)間: 2020-6-9 18:40
感謝分享,正好需要這個(gè)
作者: wyp-sky    時(shí)間: 2020-7-27 23:26
謝謝分享
作者: qwertyuiop1822    時(shí)間: 2020-8-9 16:44
祝資源共享吧越來(lái)越火!
作者: dahuilang    時(shí)間: 2020-11-18 17:56
感謝分享

作者: 青龍青龍    時(shí)間: 2020-12-6 09:53

作者: ilike    時(shí)間: 2020-12-16 06:51
66666666666666666666
作者: pye    時(shí)間: 2021-6-17 11:25
666666666666666
作者: 夕陽(yáng)殘血    時(shí)間: 2021-6-21 18:21
6666666666666
作者: admqq    時(shí)間: 2022-11-17 09:56
npplus
作者: CGC    時(shí)間: 2023-11-23 19:24
11111
作者: 1215276862    時(shí)間: 2024-4-2 15:57
自動(dòng)回復(fù)腳本
作者: 好學(xué)的初學(xué)者    時(shí)間: 2025-1-8 08:51
66666




歡迎光臨 資源共享吧|易語(yǔ)言論壇|逆向破解教程|輔助開(kāi)發(fā)教程|網(wǎng)絡(luò)安全教程|www.rigasin.com|我的開(kāi)發(fā)技術(shù)隨記 (http://www.rigasin.com/) Powered by Discuz! X3.4