vulnhub-xxe靶场通关(xxe漏洞续)
vulnhub-xxe靶场通关(xxe漏洞续)
下面简单介绍一个关于xxe漏洞的一个靶场,靶场来源:https://www.vulnhub.com 这里面有很多的靶场。
靶场环境需要自己下载:https://download.vulnhub.com/xxe/XXE.zip
因为是外国的靶场,下载速度有点慢,也可以通过公众号——星光安全,回复“xxe靶场”获得。
接下来我们开始打靶。
一、搭建靶场
1>打开虚拟机,将我们下载好的靶场环境导入
这是我们解压后的靶场环境,然后打开虚拟机将其导入
名字可以随便起,选择好路径就可以了
这时你的虚拟机最左侧就会多出一个虚拟机,我们可以打开
到这里,靶场就搭建好了。
二、扫描其网段
我们打开可以发现,不知道密码,根本没有办法登录;他的IP我们也不知道,貌似有点无从下手,但是可以通过我们之前学的信息收集对他逐步深入。我们有一个centos的虚拟机,我们可以查看一下这个虚拟机的IP地址,因为这个centos虚拟机和xxe的虚拟机在同一网段,这样我们通过扫描centos的虚拟机就可以得到xxe虚拟机的IP。
1>查看centos的IP地址
2>使用nmap扫描IP
3>找到xxe虚拟机的IP
点击服务,我们可以看到有http的,然后看一下,发现有个Ubuntu的,而且80端口还开放,我们访问一下。正常情况下那三个IP我们都可以访问一下,但是我们知道那两个是我们自己的,就直接访问最后一个即可。
4、访问
注:如果centos用的桥接模式,xxe虚拟机用的是nat模式,无法扫到,两个必须要用一样的网络状态,要么都是桥接,要么都是nat,xxe虚拟机的网络状态默认是nat。有的人可能没有其他的虚拟机,搭建了xxe环境,只有这一个,那么你需要把xxe这个虚拟机的网络状态改为桥接,扫描的时候只需要扫描本机的IP即可。不懂桥接模式和nat模式的可以自行百度一下。
三、扫描目录
有了IP以后,接着往下走,下面的话肯定是扫描他的目录了。使用御剑或者dirsearch对IP进行扫描。
先来看一些御剑的扫描
再来看一下dirsearch的扫描
这两款工具都是可以达到一个扫描目录的目的,(公众号回复 “扫描工具” 获得)扫描到一个robots.txt文件,尝试访问。
可以看到里面的内容,有一个是xxe的目录,还有一个admin.php文件,都进行访问一下
再访问一下xxe
可以看到是一个登录页面,我们就可以进行抓包尝试了。
四、寻找flag
随便输入账号密码,进行抓包
发现末尾是xml语句的提交,联想到xxe漏洞,我们可以修改这些语句,使其读取文件,先读取一下xxe.php文件,数据包头部有这个文件
修改代码如下:
<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY sp SYSTEM "php://filter/read=convert.base64-encode/resource=xxe.php">
]>
<root><name>&sp;</name><password>hj</password></root>
然后进行base64解码,选中需要解码的部分,发送到Decoder模块
然后点击Decoder,进行解码
发现没有什么用,这是我们可以想到robots.txt文件中有一个admin.php文件,尝试读取一下他的内容
进行解码
解码之后,我们可以发现有账号密码,但是密码用MD5进行了加密,解密一下
这样就有了账号密码,登录一下
登录一下发现账号和密码错误,这是因为我们获取的是xxe目录下的admin.php,所以应该在这个目录下登录
输入账号密码,登录
看到了他提示我要的flag,我们点击
又提示了一个文件,那我们还需要读取一下这个flag文件中的内容了
进行解码
可以看到the flag in (JQZFMMCZPE4HKWTNPBUFU6JVO5QUQQJ5),这串代码也是进行了加密,我们再进行解密,他的加密方式是base32 (一般MD5加密是32位,base64加密末尾都有等于号,没有等于号的可能是base32加密,严格意义上说是编码),将其解码看一下
这又是一个base64编码,再进行解码
出现了一个flag的路径,读取一下
然后进行解码
解码以后,我们发现看不懂,但是我们知道他是php文件,可能是php代码,找个在线运行工具运行一下,或者新建一个php文件,将代码写进去,访问一下
得到flag,完结!!!!
总结
这个题其实不怎么难,但是考察的比较全面,有信息收集,xxe漏洞,还有一些解码,解密。其实主要还是围绕xxe漏洞展开,题不难,就是绕。
以上的靶场环境以及工具,可以通过关注公众号 “星光安全” 获得