安全街
一步步,我们的信息安全时代

1.一句话说XXE

攻击者通过提交构造好DTD的恶意XML,强制XML访问并读取指定的敏感资源内容。

DTD是XML文档类型定义,可以内联或外部约束

2.挖掘XXE

对接收XML的访问点做测试,看是否解析了传入的内容(对一些仅接收JSON的访问点,可是尝试修改请求方法或Content-Type值)

3.XXE攻击手段

3.1 任意文件读取

通过利用SYSTEM命令定义外部实体,从外部引入敏感内容并展现出来

以上是针对有回显的漏洞,对于没有回显的漏洞,我们可以借助自己的服务器获取数据信息
在PHP下,使用php://filter自带的将目标内容转换为base64的功能,并将其定义为参数实体1
定义另外的实体2,并在定义内容中对自己的服务器进行请求,请求参数替换为之前已经定义好的参数实体1,引用这个实体2。
这时候,实体2就会对此URL发起请求,由此便将base64编码后的内容发送给了我们自己的服务器。
在解码回来就行了。

3.2 DOS攻击

通过递归XML,指数级别在内存中生成很多字符串,耗尽内存,造成拒绝服务攻击

4.XXE的防御

配置XML解析器禁止使用自定义DTD,只允许使用可信静态的DTD

这篇文章还没有人发言,快抢第一!

发表评论