• <code id="vhrz3"><strong id="vhrz3"></strong></code>
    <label id="vhrz3"><sup id="vhrz3"><li id="vhrz3"></li></sup></label>
    1. 正在阅读:仅仅是“0元购?#20445;?#24494;信支付XXE漏洞竟如此可怕仅仅是“0元购?#20445;?#24494;信支付XXE漏洞竟如此可怕

      2018-07-11 00:15 出处:PConline原创 作者:卡夫卡 责任编辑:sunziyi

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

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

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

      漏洞代码
      漏洞代码

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

      什么是XXE漏洞?

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

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

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

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

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

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

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

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

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

      为您推荐

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

      网络设备论?#31243;?#23376;排行

      最高点击 最高回复 最新
      最新资讯离线随时看 聊天吐槽赢奖品
      今晚买一生肖中特

    2. <code id="vhrz3"><strong id="vhrz3"></strong></code>
      <label id="vhrz3"><sup id="vhrz3"><li id="vhrz3"></li></sup></label>
      1. <code id="vhrz3"><strong id="vhrz3"></strong></code>
        <label id="vhrz3"><sup id="vhrz3"><li id="vhrz3"></li></sup></label>