关注联想安全实验室,获取更多安全资讯!
今日,联想安全实验室关注到国外安全社区公布微信支付官方SDK存在严重漏洞,可导致商家的支付环节被绕过。目前,已确认陌陌、vivo因使用该SDK而存在该漏洞,漏洞详细信息以及攻击方式已被公布。
截止目前,微信官方共两次修复该漏洞,两处修改时间分别为2018年07月03日12时47分和2018年07月04日8时09分。分别修复了XXE漏洞和可DoS(导致拒绝服务)攻击的漏洞。建议用到JAVA SDK的厂商或产品尽快更新修复漏洞,联想安全实验室也会持续跟进该漏洞的进展。
代码修改时间变化表
原始版本与最新版本更新代码的差异
漏洞描述
用户在使用微信支付时,商家会有一个通知的 URL 来接收异步支付结果。然而,微信JAVA版本的SDK中存在一个xxe漏洞,攻击者可向通知URL 构建恶意有效payload,以便根据需要窃取商家服务器的任何信息。一旦攻击者获得商家的关键安全密钥(md5-key和merchant-Id等),便可通过发送伪造信息来欺骗商家而无需付费购买任何东西。
漏洞描述
受影响的版本:JAVASDK,WxPayAPI_JAVA_v3
存在漏洞的SDK页面:
https://pay.weixin.qq.com/wiki/doc/api/index.html
存在问题的JAVA SDK:
https://pay.weixin.qq.com/wiki/doc/api/download/WxPayAPI_JAVA_v3.zip
WxPayAPI_JAVA_v3:
https://drive.google.com/file/d/1AoxfkxD7Kokl0uqILaqTnGAXSUR1o6ud/view
漏洞详情
WxPayApi_JAVA_v3.zip 的 README.md 中显示了更多的细节:
发布有效的商家通知 URL:
data.dtd:
或使用XXEinjector 工具:
https://github.com/enjoiz/XXEinjector 以检测:
陌陌案例:
Vivo 案例:
修复建议
用户可使用开发语言提供的禁用外部实体的方法。java禁用外部实体的代码如下:
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
参考链接:
http://seclists.org/fulldisclosure/2018/Jul/3
请用户及时关注微信支付官网的更新动态:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...