目录
一、搭建靶场
1>打开虚拟机,将我们下载好的靶场环境导入
这是我们解压后的靶场环境,点击运行xxe.ovf
名字可以随便起,选择好路径就可以了
这时你的虚拟机最左侧就会多出一个虚拟机,我们可以打开
到这里,靶场就搭建好了。
二、扫描其网段
我们打开可以发现,不知道密码,根本没有办法登录;他的IP我们也不知道,貌似有点无从下手,但是可以通过我们之前学的信息收集对他逐步深入。我们发现它用的是nat模式,我我们查看nat的网段,然后用御剑端口扫描找到192.168.204.137这一条有响应,找到xxe虚拟机的ip
- 查看nat网卡的IP地址
2>使用御剑端口扫描IP,找到IP
3>访问
三、扫描目录
有了IP以后,接着往下走,下面的话肯定是扫描他的目录了。使用御剑对IP进行扫描。
扫描到一个robots.txt文件,尝试访问。
可以看到里面的内容,有一个是xxe的目录,还有一个admin.php文件,都进行访问一下
再访问一下xxe
发现是一个登录页面,我们试探先用 Name:admin 和 Password:admin,发现不能登录,另外页面有提示,有回显
找到对应的 js 代码,发现是 POST 方式发送了 xml 请求,靶机也叫 xxe,直接 BP 抓包看一下。
四、寻找flag
发现末尾是xml语句的提交,联想到xxe漏洞,我们可以修改这些语句,使其读取文件,先读取一下xxe.php文件,数据包头部有这个文件
修改代码如下:
<?xml version="1.0" ?>
<!DOCTYPE root [
<!ELEMENT r ANY >
<!ENTITY sp SYSTEM "php://filter/read=convert.base64-encode/resource=xxe.php">
]>
<root><name>&sp;</name><password>admin</password></root>y
先把上面抓到的包发送到重放模块
然后进行base64解码,选中需要解码的部分,发送到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,完美!!!!!!