正在阅读:仅仅是“0元购”?微信支付XXE漏洞竟如此可怕仅仅是“0元购”?微信支付XXE漏洞竟如此可怕

2018-07-11 00:15 出处:PConline原创 作者:777老虎机支付宝充值 责任编辑:sunziyi

  【PConline 杂谈】不知各位近日是否也有所耳闻,就是在微信JAVA版本的SDK中,发现了一个XXE漏洞。要知道,我们在使用微信进行支付时,收款方需要提供通知网址来接受异步支付结果。有了这个漏洞,攻击者不仅可以0元购物,还可能倒卖用户的信息。目前,腾讯方面称已修复了该漏洞。不过,既然已经说到了XXE,本期我们不妨就与各位继续聊一聊XXE攻击这件事。

仅仅是“0元购”?微信支付XXE漏洞竟如此可怕
仅仅是“0元购”?微信支付XXE漏洞竟如此可怕

  在微信支付的JAVA_SDK中,提供了WXPayUtil工具类,从而实现xmltoMap和maptoXml两个方法,此次微信支付的XXE漏洞爆发点正是xmltoMap方法。微信SDK的xmlToMap方法接收并处理XML数据,且默认支持外部实体解析,因此只要能控制strXML就会存在XXE漏洞。

漏洞代码
漏洞代码

  实际上,如今有越来越多的WEB程序中,发现存在XXE(XML External Entity attack)漏洞。尽管XXE漏洞已存在许多年,但却从未得到过足够的重视,现在,却因为微信支付‘一炮而红’。

什么是XXE漏洞?

  XXE漏洞是一种针对使用XML交互的Web应用程序的攻击方法。目前来看,XML文件作为配置文件(Spring、Struts2等)、文档结构说明文件(PDF、RSS等)、图片格式文件(SVG header)应用比较广泛。可以说,之所以存在XXE漏洞,本质上在于在解析XML时能与外部进行通信;当XML文档可以由攻击者任意构造时,攻击便成为可能。利用XXE漏洞最常见也是最容易实现的事情,就是读取服务器的信息,包括目录结构、文件内容等。此次,微信支付爆出的漏洞这是这一种。

  什么是XML外部实体?你可以将XML理解成一个用来定义数据的东西,且两个采用不同技术的系统可通过XML进行通信与数据交换。例如上图中用来描述一个职工的XML文档样本,‘name’、‘salary’、‘address’就是XML的元素;另外,也有一些XML文档中包含system标识符定义的“实体”,这些‘实体’可以访问本地或者远程内容。

  比如上面的XML文档样例就包含了XML‘实体’。在这段代码中,XML外部实体‘entityex’被定义的值为:file://etc/passwd。因此,在解析过程中,实体‘entityex’的值会被替换为URI(file://etc/passwd)内容值,即passwd文件的内容,而关键字‘SYSTEM’会告诉XML解析器‘entityex’实体的值将从其后的URI中读取。

  由于关键字‘SYSTEM’不仅令XML解析器从URI中读取内容,还允许它在XML文档中被替换,因此,攻击者可通过实体将其自定义的值发送至应用程序。换言之,攻击者可强制XML解析器访问其指定的资源内容。那么,要如何鉴别一个XML实体攻击漏洞?

如何鉴别一个XML实体攻击漏洞

  最直接方法就是鉴别接受XML作为输入内容的端点,只是有时这些内容端点不那么明显。遇到这种情况,安全员需尝试例如修改HTTP的请求方法,修改Content-Type头部字段等不同的测试方式,来查看应用程序是否解析了所发送的内容,如果解析了则可能有XXE攻击漏洞。

  如何发动XXE攻击?在上面的图示中,我们例举了著名的‘billion laughs’(https://en.wikipedia.org/wiki/Billion_laughs)攻击。该攻击通过创建一项递归的XML定义,在内存中生成十亿个“Ha!”字符串而引发DDoS攻击。不仅如此,攻击者还能读取服务器上的敏感数据,通过端口扫描并获取后端系统的开放端口。

  我们看到,XXE漏洞的危害不仅仅是攻击者可以免费购物,其最大的威胁在于可以泄露窃取服务器上的敏感数据,以及发动DDoS攻击。需要强调的是,尽管我们是在微信支付中发现了XXE漏洞,但该漏洞并非仅存于微信支付中。要解决此类漏洞的最佳办法就是配置XML处理器,令其使用本地静态DTD(document type definition),禁用对外部实体的访问。

 
来不及淘宝了 教你3分钟做出高颜值红包封 医院内网染病毒履杀不止 真相竟然是这样的 出门找个车位真是难 未来用AI实时预判空车位? IPv6终于迎来发展元年 却挡了SDN的前路? 3D打印的磁性网格机器人长这样?可抓取小物体

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品
网站地图 申博电子游戏 申博太阳城登入 申博娱乐 星级百家乐
捕鱼游戏 菲律宾沙龙登入 菲律宾申博娱乐现金网 菲律宾申博在线网站登入
申博代理开户 保险百家乐 申博太阳城登入 捕鱼游戏
申博官方网址 申博开户 网上百家乐 申博开户
申博真人游戏 申博太阳城直营网 澳门博彩公司 申博太阳城注册