日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
科普:XXE注入攻擊與防御

0×00 前言

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

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

在XML1.0標準?里,XML文檔結構?里定義了實體(entity)這個概念.實體可以通過預定義在文檔中調用,實體的標識符可訪問本地或遠程內容.如果在這個過程中引入了”污染”源,在對XML文檔處理后則可能導致信息泄漏等安全問題.

0×01 威脅

XXE漏洞目前還未受到廣泛關注,Wooyun上幾個XXE引起的安全問題:

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

借助XXE,攻擊者可以實現任意文件讀取,DOS拒絕服務攻擊以及代理掃描內網等.

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

0×02 語法

要寫Payload,首先要對XML實體語法有一定了解

XML中entity的定義語法為:

 
 
 
 
  1. [  
  2. ]> 

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

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

故構造幾種簡單的Payload模型如下:

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

亦可讀取網站內容

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

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

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

0×03 攻擊

借助XXE,有幾種可用且公開的攻擊方式:

拒絕服務

POC

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

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

此外還有一種可能造成拒絕服務的Payload,借助讀取/dev/random實現.

內網信息

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

文件讀取

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

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

附上兩張截圖,實現文件讀取的過程

0×04 防御

1.檢查所使用的底層xml解析庫,默認禁止外部實體的解析

2.使用第三方應用代碼及時升級補丁

3.同時增強對系統(tǒng)的監(jiān)控,防止此問題被人利用

對于PHP,由于simplexml_load_string函數的XML解析問題出在libxml庫上,所以加載實體前可以調用這樣一個函數

 
 
 
 
  1. libxml_disable_entity_loader(true);  
  2. ?> 

以進行防護,對于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注入攻擊與防御
URL鏈接:http://www.5511xx.com/article/dhjgcge.html