XXE利用及修复

XXE利用

有回显XXE

可直接在页面查看情况;带内XML外部实体(XXE),则可以发送带有XXE有效的负载请求

无回显XXE

又叫Blind XXE,可以使用外带数据通道提取XML外部实体(OOB-XXE)

漏洞发现

先找接受XML作为输入内容的端点(修改HTTP,修改CONTENT-TYPE,检查是否解析)

再看站点是否解析xml,解析即可尝试引用实体和DTD

如果可以引用外部实体,则存在xxe漏洞

本地文件读取

有回显XXE

1.file:///

2.若为PHP程序,可使用php://filter伪协议

3.当所读文件包含了< &使用CDATA,利用外部参数实体

(有些解析库支持列目录)

无回显XXE

既然没有回显,那就要想办法把数据发送到远程服务器上

(利用通过该国外部DTD将内部参数实体内容与外部DTD声明的实体内容进行拼接。利用payload来从目标主机读取文件内容后,把文件内容作为url的一部分来请求我们本地监听的端口)

流程:定义一个参数实体,值为用file协议请求本地文件,然后定义另一参数实体,将其引用

(但几乎所有XML解析器都不解析同级参数实体内容)

所以想到嵌套,不同级时引用%file又不能出现在DTD内部子集的标记内,因此我们才引用外部DTD

(实体值中不能有%所以对其进行编码)

内网主机探测

有回显:利用BP爆破模块对IP或者端口设置变量,通过引用外部普通实体进行爆破

无回显:同理,但通过响应时间进行判断(存活的主机时间较短???)

Java中上传excel导致xxe漏洞

若存在上传功能,且支持上传xslx格式,则可能存在xxe漏洞。将XSLX该为改为zip格式,在XML文件中写入payload,通过监听相应的端口带回文件

XXE修复

过滤用户的xml数据 < 关键字等等

或者是在相应语法中设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值