XXE漏洞利用技巧(XML注入):从XML到远程代码执行

本文详细介绍了XXE漏洞,包括其概念、基本利用方式、多种攻击场景,如端口扫描、文件窃取、远程代码执行等。文章还探讨了如何通过Blind OOB XXE进行数据传输,并提供了真实世界中的XXE实例,如微信支付漏洞。最后,文章提出了缓解和防御XXE的策略,建议禁用XML外部实体以防止此类攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

什么是XXE

基本利用

Blind OOB XXE

场景1 - 端口扫描

场景2 - 通过DTD窃取文件

场景3 - 远程代码执行

场景4 - 钓鱼

场景4 - HTTP 内网主机探测

场景5 - 内网盲注(CTF)

场景6 - 文件上传

缓解措施

真实的 XXE 出现在哪

实例一:模拟情况

实例二:微信支付的 XXE

实例三:JSON content-type XXE

六、XXE 如何防御

方案一:使用语言中推荐的禁用外部实体的方法

方案二:手动黑名单过滤(不推荐)


什么是XXE

简单来说,XXE就是XML外部实体注入。当允许引用外部实体时,通过构造恶意内容,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。

例如,如果你当前使用的程序为PHP,则可以将libxml_disable_entity_loader设置为TRUE来禁用外部实体,从而起到防御的目的。

基本利用

通常攻击者会将payload注入XML文件中,一旦文件被执行,将会读取服务器上的本地文件,并对内网发起访问扫描内部网络端口。换而言之,XXE是一种从本地到达各种服务的方法。此外,在一定程度上这也可能帮助攻击者绕过防火墙规则过滤或身份验证检查。

以下是一个简单的XML代码POST请求示例:

POST /vulnerable HTTP/1.1
Host: www.test.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕诉清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值