WF曲速未來(lái)消息:php新的漏洞利用技術(shù)區(qū)塊鏈
WF曲速未來(lái):來(lái)自Secarma的安全研究員SamThomas發(fā)現(xiàn)了一種新的漏洞利用方式,可以在不使用php函數(shù)unserialize()的前提下,引起嚴(yán)重的php對(duì)象注入漏洞。
前記
前段時(shí)間,在美國(guó)的BlackHat會(huì)議上宣布了一種針對(duì)PHP應(yīng)用程序的新漏洞利用方式。你可以在這篇文章中了解到它。
概要
WF曲速未來(lái)消息:來(lái)自Secarma的安全研究員Sam Thomas發(fā)現(xiàn)了一種新的漏洞利用方式,可以在不使用php函數(shù)unserialize()的前提下,引起嚴(yán)重的php對(duì)象注入漏洞。這個(gè)新的攻擊方式被他公開在了美國(guó)的BlackHat會(huì)議演講上,演講主題為:”不為人所知的php反序列化漏洞”。它可以使攻擊者將相關(guān)漏洞的嚴(yán)重程度升級(jí)為遠(yuǎn)程代碼執(zhí)行。
流包裝
大多數(shù)PHP文件操作允許使用各種URL協(xié)議去訪問(wèn)文件路徑,如data://,zlib://或php://。其中一些包裝器通常用于利用遠(yuǎn)程文件包含漏洞,攻擊者可以在其中控制文件包含的完整文件路徑。例如,包裝器被注入泄漏源代碼,否則將被執(zhí)行,或者注入自己的PHP代碼執(zhí)行:
Phar元數(shù)據(jù)
但到目前為止,沒(méi)有人關(guān)注phar://。Phar(PHP Archive)文件的有趣之處在于它們包含序列化格式的元數(shù)據(jù)。讓我們創(chuàng)建一個(gè)Phar文件,并添加一個(gè)包含一些數(shù)據(jù)作為元數(shù)據(jù)的對(duì)象:
我們新創(chuàng)建的test.phar文件現(xiàn)在具有以下內(nèi)容。我們可以看到我們的對(duì)象存儲(chǔ)為序列化字符串。
PHP對(duì)象注入
如果現(xiàn)在通過(guò)phar://包裝器對(duì)我們現(xiàn)有的Phar文件進(jìn)行文件操作,則其序列化元數(shù)據(jù)將被反序列化。這意味著我們?cè)谠獢?shù)據(jù)中注入的對(duì)象將被加載到應(yīng)用程序中。如果此應(yīng)用程序具有已命名的類AnyClass,并且具有魔術(shù)方法函數(shù)__destruct()或__wakeup()定義,則會(huì)自動(dòng)調(diào)用這些方法。這意味著我們可以在代碼庫(kù)中觸發(fā)任何析構(gòu)函數(shù)或喚醒方法。更糟糕的是,如果這些方法函數(shù)對(duì)我們注入的數(shù)據(jù)進(jìn)行操作,那么這可能會(huì)導(dǎo)致進(jìn)一步的漏洞:
漏洞利用
首先,攻擊者必須能夠在目標(biāo)Web服務(wù)器上植入精心制作的Phar文件。而Sam Thomas發(fā)現(xiàn)了一些關(guān)于如何將Phar文件隱藏到JPG中的好技巧,因此常見的圖像上傳功能已足夠。
到目前為止,這似乎仍不是關(guān)鍵,因?yàn)楣粽呷绻梢钥刂浦T如完整的include(),fopen(),file_get_contents(),file()等文件操作的函數(shù),則可以造成嚴(yán)重的漏洞。因此,通常需要在這些函數(shù)使用前驗(yàn)證用戶的輸入。
但是,phar://在任何文件操作中都會(huì)觸發(fā)反序列化。因此,其他文件操作,例如file_exists()簡(jiǎn)單地檢查文件的存在,直到現(xiàn)在被認(rèn)為對(duì)安全風(fēng)險(xiǎn)不太敏感并且受到較少保護(hù)。但是現(xiàn)在攻擊者可以注入phar://包裝器并獲得代碼執(zhí)行:
總結(jié)
WF曲速未來(lái)提醒:可以通過(guò)RIPS的污點(diǎn)分析,然后就可以在PHP文件操作中自動(dòng)檢測(cè)用戶輸入的未經(jīng)過(guò)濾或驗(yàn)證的信息。這樣,我們即可檢測(cè)文件刪除、泄露、寫入、創(chuàng)建、包含(等等)漏洞。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。