7月1日,在老牌漏洞披露平台Full Disclosure出现了一封写给微信支付的公开信。发件人是Rose Jackcode,信的标题是《微信支付官方SDK的XXE安全漏洞(微信支付在商户页面遗留了一个后门)》。
发表在漏洞披露平台Full Disclosure上的公开信
发件人Rose Jackcode在信中称,他在微信支付官方SDK(软件工具开发包)发现了一个安全漏洞,此漏洞可导致商家服务器被入侵,一旦攻击者获得商家的关键安全密钥,就可以通过发送伪造信息来欺骗商家而无需付费购买任何东西。
在使用微信支付时,商家需要提供通知网址以接受异步支付结果。问题是微信在JAVA版本SDK中的实现存在一个XXE漏洞。攻击者可以向通知URL构建恶意payload,根据需要窃取商家服务器的任何信息。换句话说,黑客利用微信支付的这个漏洞,能实现0元买买买的情况。
为了让大家信服,Rose Jackcode还贴出了两张代码截图,展示出漏洞利用的过程,中招者是 Vivo和陌陌。
陌陌中招
vivo中招
那么他提到的XXE漏洞到底是什么呢?资料显示,XXE漏洞即XML外部实体注入漏洞,它通常发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起DOS攻击等危害。简单说就是使用XML后的引用不规范导致的问题。
值得注意的是,目前漏洞的详细信息以及攻击方式已被公开,安全人员建议使用 JAVA语言 SDK(软件开发工具包)开发微信支付功能的商户,快速检查并修复。据白帽汇安全总监“BaCde”向雷锋网透露,由于微信官方的SDK有问题,目前所有使用基于微信支付JAVA SDK开发的微信支付功能都可能受影响。
但是为什么Vivo和陌陌会受影响?一个是手机厂商,一个是社交软件,似乎和微信支付没有直接关联。
BaCde解释,Vivo可能是因为其在线商城,比如黑客可以用微信支付不花一分钱来买走在线商城的东西。而对于陌陌中招,则有可能是因为它可以通过微信支付进行会员充值,也有漏洞可以利用。
雷锋网称,虽然这篇在国外网站上的披露文章是英文的,但是其技术人员用了中文的标点符号,很有可能是国内的技术人员冒充外国人发的攻击详情。
针对此漏洞,微信支付方面未发布相关安全公告。腾讯方面在向媒体回应时表示,“微信支付技术安全团队已第一时间关注及排查,并于今天中午对官方网站上该SDK漏洞进行更新,修复了已知的安全漏洞,并在此提醒商户及时更新。请大家放心使用微信支付。”