欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么-創(chuàng)新互聯(lián)

本篇文章為大家展示了針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為三明企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、成都做網(wǎng)站,三明網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

前言

就在前段時(shí)間的BlackHat黑客大會(huì)上,來自Secarma的安全研究專家Sam Thomas介紹了一種可導(dǎo)致嚴(yán)重PHP對(duì)象注入漏洞出現(xiàn)的新型漏洞利用技術(shù),這種技術(shù)不需要使用到unserialize()這個(gè)PHP函數(shù),雖然這是一種PHP反序列化漏洞,但它并不像大家所知道的那樣。在這種技術(shù)的幫助下,攻擊者將能夠提升相關(guān)漏洞的文件嚴(yán)重性,并最終實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。

不過大家不用擔(dān)心,RIPS已經(jīng)將這種新型的攻擊類型增加到RIPS代碼分析引擎之中了,感興趣的同學(xué)可以點(diǎn)擊【 這里 】查看RIPS代碼分析Demo。

流封裝器

在訪問一條文件路徑時(shí),大多數(shù)PHP文件操作都允許使用各種URL風(fēng)格的封裝器,例如data://、zlib://或php://。其中的某些封裝器通常都會(huì)被攻擊者用來利用某些潛在的遠(yuǎn)程文件包含漏洞,一旦利用成功,攻擊者將能夠控制目標(biāo)文件的完整文件路徑。比如說,封裝器可以注入某些資源路徑,或注入需要直接執(zhí)行的惡意PHP代碼:

include($_GET['file'])
include('php://filter/convert.base64-encode/resource=index.php');
include('data://text/plain;base64,cGhwaW5mbygpCg==');

Phar元數(shù)據(jù)

但是目前為止,還沒有人關(guān)注過phar://封裝器。之所以我們注意到了Phar文件(一種PHP文檔),是因?yàn)檫@種文件所包含的元數(shù)據(jù)采用的是一種序列化格式。接下來,我們一起創(chuàng)建一個(gè)Phar文件,并向其中添加一個(gè)包含數(shù)據(jù)的對(duì)象來作為元數(shù)據(jù):

//create new Phar
$phar= new Phar('test.phar');
$phar->startBuffering();
$phar->addFromString('test.txt','text');
$phar->setStub('<?php__HALT_COMPILER(); ? >'); 
//add object of any class as meta data
classAnyClass {}
$object= new AnyClass;
$object->data= 'rips';
$phar->setMetadata($object);
$phar->stopBuffering();

我們新創(chuàng)建的這個(gè)test.phar文件現(xiàn)在擁有如下所示的內(nèi)容,我們可以看見我們新添加的對(duì)象會(huì)以序列化字符串的形式進(jìn)行存儲(chǔ):

針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么

PHP對(duì)象注入

如果一個(gè)文件操作是通過phar://封裝器來對(duì)我們的Phar文件進(jìn)行的話,文件所包含的序列化元數(shù)據(jù)將會(huì)被反序列化。這也就意味著,我們?cè)谠獢?shù)據(jù)中注入的對(duì)象將會(huì)被加載到應(yīng)用程序上下文中,如果目標(biāo)應(yīng)用程序有一個(gè)名叫AnyClass的類,并且定義了類似__destruct()或__wakeup()這樣的方法,那么這些方法將會(huì)自動(dòng)被調(diào)用。因此,我們將能夠觸發(fā)代碼中任意的銷毀方法或喚醒方法。更嚴(yán)重的是,如果這些方法能夠直接對(duì)我們注入的數(shù)據(jù)對(duì)象進(jìn)行操作的話,將導(dǎo)致更嚴(yán)重的漏洞出現(xiàn)。

class AnyClass {
       function __destruct() {
                echo $this->data;
       }
}
// output:rips
include('phar://test.phar');

漏洞利用

首先,攻擊者必須要制作一個(gè)Phar文件,并將其存儲(chǔ)在目標(biāo)Web服務(wù)器中。但是Sam Thomas發(fā)現(xiàn)原來可以將Phar文件隱藏在一個(gè)JPG文件之中,所以這一步可以直接利用常見的圖片上傳功能來實(shí)現(xiàn)。

目前來說,還不足以造成嚴(yán)重的影響,因?yàn)槿绻粽呖梢栽陬愃苅nclude()、fopen()、file_get_contents()和file()這樣的操作中控制完整的文件路徑,那么這已經(jīng)暴露了一個(gè)嚴(yán)重的安全漏洞了。因此,這些函數(shù)在處理用戶輸入數(shù)據(jù)時(shí)肯定會(huì)進(jìn)行各種驗(yàn)證。

不過,phar://封裝器在進(jìn)行任意文件操作時(shí)都會(huì)觸發(fā)反序列化行為,因此類似file_exists()這樣的文件操作雖然只會(huì)檢查文件是否存在,這樣的實(shí)現(xiàn)不僅沒有考慮安全風(fēng)險(xiǎn)之類的問題,而且也沒有采取任何的保護(hù)措施。因此,攻擊者將能夠注入phar://封裝器并獲取到代碼執(zhí)行權(quán)限。

下面給出的是目前看似無害的代碼段:

file_exists($_GET['file']);
md5_file($_GET['file']);
filemtime($_GET['file']);
filesize($_GET['file']);

RIPS的自動(dòng)檢測(cè)機(jī)制

在RIPS的幫助下,我們將能夠?qū)ξ唇?jīng)過濾或驗(yàn)證的用戶輸入數(shù)據(jù)(針對(duì)PHP文件的操作)進(jìn)行自動(dòng)化檢測(cè)。這樣一來,我們就可以檢測(cè)文件刪除、文件披露、文件寫入、文件篡改、文件創(chuàng)建和文件包含漏洞。

針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么

除此之外,RIPS的上下文敏感字符串分析功能也可以幫助我們精準(zhǔn)判斷文件路徑是否可以被攻擊者部分或完全控制,以及是否可以注入phar://封裝器。更加重要的是,RIPS甚至還可以檢測(cè)到潛在的對(duì)象注入漏洞利用鏈。

RIPS的研究人員已將這種類型的PHP對(duì)象注入攻擊標(biāo)記為了Phar Deserialization,RIPS代碼分析器目前已支持檢測(cè)這種類型的代碼風(fēng)險(xiǎn)。

上述內(nèi)容就是針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

文章標(biāo)題:針對(duì)PHP對(duì)象注入漏洞的新型利用方法是什么-創(chuàng)新互聯(lián)
URL分享:http://www.chinadenli.net/article36/dccpsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序靜態(tài)網(wǎng)站網(wǎng)站設(shè)計(jì)公司網(wǎng)站改版定制網(wǎng)站App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)