【PConline 杂谈】不知各位近日是否也有所耳闻,就是在微信JAVA版本的SDK中,发现了一个XXE漏洞。要知道,我们在使用微信进行支付时,收款方需要提供通知网址来接受异步支付结果。有了这个漏洞,攻击者不仅可以0元购物,还可能倒卖用户的信息。目前,腾讯方面称已修复了该漏洞。不过,既然已经说到了XXE,本期我们不妨就与各位继续聊一聊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),禁用对外部实体的访问。 |
正在阅读:仅仅是“0元购”?微信支付XXE漏洞竟如此可怕仅仅是“0元购”?微信支付XXE漏洞竟如此可怕
2018-07-11 00:15
出处:PConline原创
责任编辑:sunziyi
热门排行
IT百科
热门专题
网络设备论坛帖子排行
最高点击
最高回复
最新
-
37次
GoDaddy美国虚拟主机让智能建站更简单
1 -
25次
香港服务器10M独享,16G,2T,仅700元
2 -
23次
LOLS9皎月女神-黛安娜符文出装攻略 另类玩法征服者流皎月的玩法教学
3 -
20次
数字经济推动安防市场发展,安防企业应如何立足?
4 -
18次
王者荣耀GK.鹏鹏云中君KPL首秀铭文及出装 暴击穿透两不误?
5 -
17次
“户外液晶广告机”,新一代公园景区观光体验黑科技!
6 -
16次
首次揭秘:阿里巴巴中间件在 Serverless 技术领域的探索
7 -
14次
首次揭秘:阿里巴巴中间件在 Serverless 技术领域的探索
8 -
14次
自从有了佳能喷墨打印机G2810,再也不用担心墨盒太贵啦
9 -
13次
一分钟了解千兆与万兆光模块的那些事儿
10
汽车资讯
最新资讯离线随时看
聊天吐槽赢奖品