这是vulnhub靶机系列文章的第三篇,具体下载连接去vulnhub或者百度、谷歌搜搜就好...开始进入主题
首先xxe是xml外部实体注入漏洞,可通过进入外部实体进行攻击,例如读取敏感文件,扫描端口等等,实战中感觉出现几率不是很大,唯一一次遇到是某司面试题,当时团队小伙伴遇到了,运气爆棚的我找到了xxe漏洞,顺道内部交流了下hahaha,不扯淡了,开始吧...
#001 寻找靶机ip
打开kali,用netdiscover -i eth0,扫描一下eth0网卡中存活的ip,发现靶机ip
#002 靶机渗透
然后用nmap扫描一下端口情况,开启了80端口,访问一波只是默认页面,没啥用处
Nmap扫出了有robots.txt和xxe,admin.php的目录,尝试访问一波robots.txt,发现一下目录,尝试过访问admin.php访问不了,可能是权限问题。
访问一下xxe目录,发现是一个登录的页面,尝试简单的弱口令,都不成功
点击登录抓包分析一下,发现请求的是一段xml的内容,尝试构造xml的payload
直接构造外部实体注入的payload,读取/etc/password/目录下的内容,发现能能读出来,证明肯定存在xxe漏洞
我们再尝试利用php的伪协议filter去读取xxe.php的源码,base64解码之后,并没有发现什么可利用的信息,我们利用这个思路去读取admin.php的源码
利用filter协议读取admin.php的源码,发现还是一段base64加密的内容
Base64解码发现是一个php写的登陆页面,并且发现了username和password的信息
把passowrd的内容md5解密一下,得到password的明文为admin@123,尝试登陆一下xxe的登陆页面,但是失败了
刚才用nmap扫的时候扫到了xxe目录下还有一个admin.php,尝试访问一下,并用刚才得到的username和passowrd登陆上去,发现了Flag的地址
点击Flag的链接,但是发现访问不了,但是刚才的思路,我们是可以读取它的源码的
直接读取flag文件的源码,去base64解密后,发现文件源码明文内容
源码:
源码里发现还有一段加密的内容,看着像base64加密,但是解不出来,然后又尝试base32解密一下,发现解密出来的内容是一层base64编码,解码为 /etc/.flag.php
继续利用伪协议读取/etc/.flag.php文件的内容,又是base64编码,去解码…
解码出来的内容是一堆完全不认识的字符
想了想,文件名好像是php的文件,这会不会是变形的php代码?本地用phpstudy搭建了环境,创建xxe.php的文件,将代码复制进去
然后访问127.0.0.1/xxe.php,发现一堆报错信息,但是在最后一行发现了flag,这里就成功拿到flag,打完收工