程式碼安全測試第二十三期:對XML外部實體引用的不當限制漏洞
一、什麼是對XML外部實體引用的不當限制?
該軟體處理的XML文件可能包含帶有URI的XML實體,這些URI可以解析為超出預期控制範圍的文件,從而導致產品將不正確的文件嵌入其輸出中。
XML文件可以選擇包含文件型別定義(DTD),該文件型別定義(DTD)除其他功能外,還可以定義XML實體。可以透過提供URI形式的替換字串來定義實體。XML解析器可以訪問此URI的內容,並將這些內容重新嵌入XML文件中以進行進一步處理。
二、對XML外部實體引用的不當限制構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
透過提交使用
file:// URI
定義外部實體的XML檔案,攻擊者可以使處理應用程式讀取本地檔案的內容。例如,諸如
file:/// c:/winnt/win.ini
之類的URI(在Windows中)指定檔案
C:\ Winnt \ win.ini
,或
file:/// etc / passwd
指定密碼基於Unix的系統中的檔案。
透過將URI與其他方案(例如http://)一起使用,攻擊者可以強制應用程式向攻擊者無法直接到達的伺服器發出傳出請求,這些請求可用於繞過防火牆限制或隱藏攻擊源(例如埠掃描)。
讀取URI的內容後,會將其反饋回正在處理XML的應用程式中。該應用程式可以回顯資料(例如在錯誤訊息中),從而暴露檔案內容。
三、對XML外部實體引用的不當限制漏洞會造成哪些後果?
如果攻擊者能夠包括精心製作的DTD,並且啟用了預設實體解析器,則攻擊者可能能夠訪問系統上的任意檔案。
DTD可以包括伺服器可以執行的任意HTTP請求。這可能導致利用伺服器與其他實體的信任關係的其他攻擊。
使用指向大檔案的URI或始終返回資料的裝置(例如/ dev / random),該軟體可能會消耗過多的CPU週期或記憶體。或者,URI可以引用包含許多巢狀或遞迴實體引用的檔案,以進一步減慢解析速度。
四、對XML外部實體引用不當限制的防範和修補方法有哪些?
可以將許多XML解析器和驗證器配置為禁用外部實體擴充套件。
五、對XML外部實體引用的不當限制漏洞樣例:
用悟空 靜態程式碼檢測工具分析上述程式程式碼,則可以發現程式碼中存在著“對XML外部實體引用的不當限制” 導致的 程式碼缺陷,如下圖:
對XML外部實體引用的不當限制在CWE中被編號為CWE-611: Improper Restriction of XML External Entity Reference
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2777637/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- 程式碼安全測試第二十二期:HTTP響應拆分漏洞HTTP
- 程式碼安全測試第二十四期:數字型別的不正確轉換漏洞型別
- 程式碼安全測試第二十一期:從finally塊中return漏洞
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 我如何發現Facebook伺服器中的遠端程式碼執行漏洞:OpenID中的XML外部實體擴充套件漏洞伺服器XML套件
- XML實體注入漏洞XML
- 程式碼安全測試第六期:XPath注入漏洞
- 軟體測試與程式碼安全詳解
- 程式碼安全測試第五期:OS命令注入漏洞
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 測試開發必備技能:安全測試漏洞靶場實戰
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 網站安全檢測 對帝國CMS程式碼的後臺功能性安全測試網站
- 滲透測試網站安全漏洞檢測大體方法網站
- 網站介面漏洞安全測試 大體階段分析網站
- block 對外部引用變數的處理BloC變數
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- XXE外部實體注入漏洞總結
- 程式碼安全測試第二十六期:透過錯誤訊息導致的資訊暴露
- 網站安全測試之APP滲透測試漏洞網站APP
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 有了這4個安全測試工具,對軟體安全測試say so easy!
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 滲透測試對app安全測試實戰過程分享APP
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 網站滲透測試安全檢測漏洞網站
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案