2018-06-14
個人學習雜記。
XXE = XML Entity attack (XML 實體攻擊)
XML External Entity (XXE) Processing
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing
Top 10-2017 A4-XML External Entities (XXE)
https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)
(下圖)
什麼是XML實體?
一個XML實體允許定義標籤,當解析XML文檔時,標籤將被內容取代。 通常有三種類型的實體:
- 內部實體 (internal entities)
- 外部實體 (external entities)
- 參數實體 (parameter entities)
一個實體必須在文檔類型定義(DTD)中創建,讓我們從一個例子開始:
<?xml version="1.0" standalone="yes" ?> <!DOCTYPE author [ <!ELEMENT author (#PCDATA)> <!ENTITY js "Jo Smith"> ]> <author>&js;</author> |
所以你在任何地方使用實體 js 解析器將用實體中定義的值替換它。
(上圖) 改成這樣
<?xml version="1.0" encoding='UTF-8'?> <!DOCTYPE comment [ <!ELEMENT comment (Activity)> <!ELEMENT Activity (#PCDATA)> <!ENTITY xxe SYSTEM ".."> ]> <comment> <text>&xxe;</text></comment> |
(上圖) 作法待研究
https://en.wikipedia.org/wiki/Billion_laughs_attack
XXE mitigation ( XXE 緩解)
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet
(待續)
沒有留言:
張貼留言