日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
科普:XXE注入攻擊與防御

0×00 前言

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比江油網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式江油網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋江油地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

XXE Injection即XML External Entity Injection,也就是XML外部實(shí)體注入攻擊.漏洞是在對(duì)非安全的外部實(shí)體數(shù)據(jù)進(jìn)?行處理時(shí)引發(fā)的安全問(wèn)題.

在XML1.0標(biāo)準(zhǔn)?里,XML文檔結(jié)構(gòu)?里定義了實(shí)體(entity)這個(gè)概念.實(shí)體可以通過(guò)預(yù)定義在文檔中調(diào)用,實(shí)體的標(biāo)識(shí)符可訪問(wèn)本地或遠(yuǎn)程內(nèi)容.如果在這個(gè)過(guò)程中引入了”污染”源,在對(duì)XML文檔處理后則可能導(dǎo)致信息泄漏等安全問(wèn)題.

0×01 威脅

XXE漏洞目前還未受到廣泛關(guān)注,Wooyun上幾個(gè)XXE引起的安全問(wèn)題:

pull-in任意文件遍歷/下載
從開(kāi)源中國(guó)的某XXE漏洞到主站shell
百度某功能XML實(shí)體注入
百度某功能XML實(shí)體注入(二)

借助XXE,攻擊者可以實(shí)現(xiàn)任意文件讀取,DOS拒絕服務(wù)攻擊以及代理掃描內(nèi)網(wǎng)等.

對(duì)于不同XML解析器,對(duì)外部實(shí)體有不同處理規(guī)則,在PHP中默認(rèn)處理的函數(shù)為: xml_parse和simplexml_load xml_parse的實(shí)現(xiàn)方式為expat庫(kù),默認(rèn)情況不會(huì)解析外部實(shí)體,而simplexml_load默認(rèn)情況下會(huì)解析外部實(shí)體,造成安全威脅.除PHP外,在Java,Python等處理xml的組件及函數(shù)中都可能存在此問(wèn)題

0×02 語(yǔ)法

要寫(xiě)Payload,首先要對(duì)XML實(shí)體語(yǔ)法有一定了解

XML中entity的定義語(yǔ)法為:

 
 
 
 
  1. [  
  2. ]> 

如果要引用一個(gè)外部資源,可以借助各種協(xié)議 幾個(gè)例子:

 
 
 
 
  1. file:///path/to/file.ext  
  2. http://url/file.ext  
  3. php://filter/read=convert.base64-encode/resource=conf.php  

故構(gòu)造幾種簡(jiǎn)單的Payload模型如下:

 
 
 
 
  1.  
  2.  
  3. ]> 
  4.  
  5. &xxe; 
  6.  

亦可讀取網(wǎng)站內(nèi)容

 
 
 
 
  1.  
  2.  
  3. ]> 
  4.  
  5. &xxe; 
  6.  

如果包含文件失敗,可能是由于讀取php等文件時(shí)文件本身包含的<等字符.可以使用Base64編碼繞過(guò),如:

 
 
 
 
  1.  
  2.  
  3. ]> 
  4.  
  5. &xxe; 
  6.  

0×03 攻擊

借助XXE,有幾種可用且公開(kāi)的攻擊方式:

拒絕服務(wù)

POC

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. ]> 
  13. &lol9; 

POC中中先定義了lol實(shí)體,值為”lol”的字符串,后在下面又定義了lol2實(shí)體,lol2實(shí)體引用10個(gè)lol實(shí)體,lol3又引用了10個(gè)lol2實(shí)體的值,依此類(lèi)推,到了最后在lolz元素中引用的lol9中,就會(huì)存在上億個(gè)”lol”字符串此時(shí)解析數(shù)據(jù)時(shí)未做特別處理,即可能造成拒絕服務(wù)攻擊。

此外還有一種可能造成拒絕服務(wù)的Payload,借助讀取/dev/random實(shí)現(xiàn).

內(nèi)網(wǎng)信息

借助各種協(xié)議如http,XXE可以協(xié)助掃描內(nèi)網(wǎng),可能可以訪問(wèn)到內(nèi)網(wǎng)開(kāi)放WEB服務(wù)的Server,并獲取其他信息

文件讀取

最常規(guī)也是最有效的利用思路

 
 
 
 
  1.  
  2.  
  3. ]> 
  4.  
  5. &xxe; 
  6.  

附上兩張截圖,實(shí)現(xiàn)文件讀取的過(guò)程

0×04 防御

1.檢查所使用的底層xml解析庫(kù),默認(rèn)禁止外部實(shí)體的解析

2.使用第三方應(yīng)用代碼及時(shí)升級(jí)補(bǔ)丁

3.同時(shí)增強(qiáng)對(duì)系統(tǒng)的監(jiān)控,防止此問(wèn)題被人利用

對(duì)于PHP,由于simplexml_load_string函數(shù)的XML解析問(wèn)題出在libxml庫(kù)上,所以加載實(shí)體前可以調(diào)用這樣一個(gè)函數(shù)

 
 
 
 
  1. libxml_disable_entity_loader(true);  
  2. ?> 

以進(jìn)行防護(hù),對(duì)于XMLReader和DOM方式解析,可以參考如下代碼:

 
 
 
 
  1. loadXML($badXml,LIBXML_DTDLOAD|LIBXML_DTDATTR);  ?>>  

0×05 參考

https://www.owasp.org/index.php/Testing_for_XML_Injection_(OWASP-DV-008)

http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html

http://cn2.php.net/libxml_disable_entity_loader

http://projects.webappsec.org/w/page/13247004/XML%20Injection

http://drops.wooyun.org/papers/1911


本文題目:科普:XXE注入攻擊與防御
網(wǎng)頁(yè)鏈接:http://www.dlmjj.cn/article/dhjgcge.html