近日,微信发来警告告知,就在微信java版本的sdk中,发现存在xxe漏洞。有了这个漏洞,攻击者不仅可以实现零支付购物,而且还能倒卖客户信息,严重影响了经济秩序和客户人身安全。
工具/原料
手机
微信软件
购物
一、什么是XXE漏洞
1、值得庆祝的是,腾讯方面声称已经将xxe漏洞修复,但是既然谈到了xxe漏洞,我们不妨来一探究竟
2、那么究竟什么是XXE漏洞呢?XXE漏洞是一种针对使用XML交互的Web应用程序的攻击方法。也就是所谓的外部实体注入漏洞,主要是在xml转map的时候处理不得当造成的,所以接下来的修复工作主要在xml解析类中下功夫
3、那么问题又来了,什么是XML呢?XML是用于标记电子文件使其具有结构性的标记语言,可以理解为用来定义数据的东西。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素
如何测试XXE漏洞
1、测试前先了解一下什么是DTD?DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。另外,DTD实体是用于定义引用普通文本或特殊字符的快捷方式的变量,可以内部声明或外部引用。
2、怎样构建外部实体注入?方法一:直接通过DTD外部实体声明XML内容
3、方法二:通过DTD文档引入外部DTD文档,再引入外部实体声明XML内容:
4、方法三:通过DTD外部实体声明引入外部实体声明好像有点拗口,其实意思就是先写一个外部实体声明,然后引用的是在攻击者服务器上面的外部实体声明具体看例子,XML内容
如何防御XXE漏洞
1、一、使用开发语言提供的禁用外部实体的方法
2、二、过滤用户提交的XML数据关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC。