上次工作时,碰到个XXE漏洞的验证。恰好今天碰到个这方面的靶机,就练练手,现推荐给大家,了解这个东西,挺广的。这个vulnhub的靶机级别为“简单”的级别;今天第一次用无糖的Http抓包测试工具来做重放,体验还不错,不比Burpsuite、Yakit差;好样的,无糖,期待更好地更新。
靶机下载地址:
https://download.vulnhub.com/xxe/XXE.zip
用VM打开导入后,它没有上个例子那么麻烦的修改配置了,直接能用。
不用xshell了,换成了孙老师推荐的X-Terminal,好东西。
1、找同网段的机器:arp-scan -l
发现了192.168.137.130,mac为00:0c:29:1d:e1:e6,我们查看下VM中的靶机配置:
这算是找对了。
2、查看靶机开了哪些端口:nmap -sC -sV -p- 192.168.137.130
上图可看出,开放了80端口,网页标题有Apache2 Ubuntu Default Page字样,同时有robots.txt 和 /xxe/提示,看来这跟xxe有关了。
在url中打开看下,
3-1、扫描目录,dirsearch -u "http://192.168.137.130"
没发现目录,发现了文件robots.txt;打开:
3-2、用下上篇的gobuster扫描目录:
gobuster dir -u http://192.168.137.130/ -w /usr/share/wordlists/dirb/big.txt
出来:
也发现有robots.txt文件;
3-3、扫描xxe目录:
gobuster dir -u http://192.168.137.130/xxe -w /usr/share/wordlists/dirb/big.txt -x php
4、打开http://192.168.137.130/xxe/,为管理员登录界面:
5、抓包测试,
我们这里不用bp,换一个用用,改用无糖出品的TangGo中的HTTP抓包测试工具,打开拦截ON,使用内置浏览器打开http://192.168.137.130/xxe,放行一个数据包,可看到xml,
可能会存在着xxe漏洞。
6、抓登录的包,修改数据包,读取passwd密码:
先随便输入用户名和密码,然后Login,
拦截住数据据,如下:
右键将这个数据发送到“数据重放”,
将红框的内容替换为读取/etc/passwd的内容,xml重新构造如下:
发送。。。。,在右侧返回数据显示出200,结果正确,如下:
说明xxe漏洞成功,可以读取任何文件;我们上面扫描时发现有个admin.php文件,我们来读取它的内容。
7、读取admin.php内容:
在直接抓包读取/xxe/admin.php时会出错,问了下GPT的原因,如下:
那就用伪协议php://filter/read使用相对路径获取网站文件源码,如下:
放入base64解码,如下:
里面包含了 用户名和密码,如下:
用户名为:administhebest,密码经 MD5 解密后为admin@123
8、登录后台
出错。再看下admin.php源码,原来是:
9、还是要利用xxe页面漏洞读取flagmeout.php内容,如下:
base64解密下,如下:
用base32过一次,
再用base64解一下,
10、解出flag
base64解下,
说是这是一段php代码,找个网站https://code.y444.cn/php运行下,
看到这标志性的字符串,应该就是flag出来了,结束。
结束语:在这个测试中第一次使用无糖的Http抓包工具来测试,感觉不比Burpsuite、Yakit差,体验效果很好,不知道是不是有了bp和yakit的基础,反正上手非常容易,而且人机交互体验很棒。
原文始发于微信公众号(MicroPest):XXE漏洞 靶机
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论