又到月初了,你的花呗账单还清了吗?
如果有人告诉你,现在不用你花一分钱,就能在某些电商平台随便买,你会相信吗?
恩,我知道聪慧的你,是不会相信天上掉馅饼的~
那如果这个人是黑客呢?
7月3日,据白帽汇安全研究院的消息,有网友在国外的安全社区公布了微信支付官方SDK(软件工具开发包)存在的严重漏洞,此漏洞可导致商家服务器被入侵,一旦攻击者获得商家的关键安全密钥(md5-key和merchant-Id等),他就可以通过发送伪造信息来欺骗商家而无需付费购买任何东西。
在使用微信支付时,商家需要提供通知网址以接受异步支付结果。 问题是微信在JAVA版本SDK中的实现存在一个xxe漏洞。 攻击者可以向通知URL构建恶意payload,根据需要窃取商家服务器的任何信息。
换句话说,黑客利用微信支付的这个漏洞,能实现0元买买买的情况。
这并不是说说而已,这位网友还直接甩出了两张图,展示出漏洞利用的过程,中招者是vivo和陌陌。
▲陌陌的微信支付漏洞利用过程
▲vivo的微信支付漏洞利用过程
值得注意的是,目前漏洞的详细信息以及攻击方式已被公开,安全人员建议使用JAVA语言SDK(软件开发工具包)开发微信支付功能的商户,快速检查并修复。(此处解释一下,微信官方发布了自己的微信支付开发包,许多开发人员选择使用官方最新版本,一般来讲,SDK是按照编程语言区分,如果网站使用的是同一种语言,那么其开发使用的也就是对应种语言。但也有特殊情况,就是不使用官方的开发包,而使用开源的或自行开发的,这样相对较少。)
那么,微信支付的官方SDK究竟谁会用?范围多大?为什么黑客选择陌陌和vivo开刀?商家和用户会受到哪些影响?知道这个漏洞的黑客为什么不自己“闷声发大财”,而要选择将攻击方式公开?
文章开头提到,这个漏洞是关于微信支付的官方SDK的,那究竟谁会用到此类SDK呢?
白帽汇安全总监“BaCde” 告诉雷锋网,所有需要开通微信支付的商家都很有可能用到!
比如,我们平时使用微信支付的时候,都会有一个付款的二维码,或者网购的时候,也有微信的支付渠道。这就需要商家与微信支付建立一个专属通道。以你去买面包为例,在你扫码的瞬间,微信支付和商家的对话是这样的:
微信支付:你是哪家店?
面包店:我是某某面包店,我的代号是***
微信支付:订单是你生成的吗?
面包店:是的。
微信支付:我收到了50块,钱数对吗?
面包店:对的。
微信支付:对的话你们订单系统赶紧处理一下,人家付款成功了。
面包店:好的,这就处理。
这个过程叫“商户回调接口”,也就是说,所有的商户要想开通微信支付,不管是线上还是线下的,都需要通过与微信支付的这个接口来交流,这个接口有一套标准的定义,比如订单号、用户信息、价格等,最后有一个签名来保证双方交易的真实可靠。
这时,微信官方为了方便商户,一般都会有一个官方的SDK,来使得各家商户更加顺畅和安全地接入微信支付,这时,这个SDK开发包就存在了这些商户的服务器上,与此同时,开发包的漏洞也就直接影响了商户服务器的安全性。
如果有一天,黑客利用SDK上面的漏洞控制了商家的服务器,那么这些订单状态、用户信息和价格等就很有可能被黑客拿走并且进行篡改。
据 BaCde 透露,由于微信官方的SDK有问题,目前所有使用基于微信支付JAVA SDK开发的微信支付功能都可能受影响。
那黑客为什么选择陌陌和vivo来开刀呢?听起来,这两家一个是手机厂商,一个是社交软件,和我们平时刷二维码或者网购的某某商家还是有区别。
BaCde 解释,vivo这个可能是vivo的在线商城,比如黑客可以用微信支付不花一分钱来买走在线商城的东西。而对于陌陌中招,则有可能是因为它可以通过微信支付进行会员充值,也有漏洞可以利用。
所以,也许这名攻击者是经常用vivo手机的单身狗?
如果你是一名商户,会有哪些影响?
以在线商城的商户为例,如果你所应用的语言是JAVA(目前漏洞针对的是JAVA),接入微信支付功能的第一步,首先要在微信的官方网站找到 JAVA 语言的 SDK 开发包,当开发人员编写不规范而开发出有漏洞的微信支付功能,黑客发现后,就可通过窃取商户信息,进而伪造网络请求进行0元购买商品的操作,以及获取数据信息。
这里要强调一下,虽然这里的开发人员是商户的开发人员,但其根本原因还是由于微信支付的SDK在某处存在安全问题,所以要解决漏洞,还得从官方的SDK来解决。
如果我是普通的用户呢?
最直接的影响就是,你在商家后台的用户信息已经被暴露了,而黑客拿到这些信息可以去暗网上兜售。紧接着,你成为了垃圾信息的受害者。
而对于黑客来说,通过这个漏洞,不仅可以0元买买买,还可以通过倒卖用户信息小赚一笔。
雷锋网发现,目前,陌陌和 vivo 已经修复了相关的漏洞,但针对此漏洞,微信官方并未发布相关安全公告,也没有更新微信支付的SDK版本。
也就是说,所有使用微信支付官方SDK的商户,并且语言是JAVA的,都还处于被攻击的危险之中。
那既然微信官方都没修复,陌陌和vivo是怎么修复的?
BaCde解释,陌陌和vivo本身有相应的安全能力,可以修改SDK的相应代码进行修复,自行解决。但如果是一些小的商户,就没有这个能力了。
据悉,虽然目前该漏洞影响的是JAVA版本的SDK,但历史上已经出现过PHP版本的SDK存在同样的漏洞。据BaCde透露,这次的漏洞是XML外部实体注入漏洞,即当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。
对于攻击者来说,这么好的赚钱机会,闷声发大财就好了,为什么要选择公开攻击方式?
据白帽汇创始人赵武推测,直接公开这种级别的大杀器确实太不寻常,他这样做的原因,不排除是黑客在利用漏洞的过程中发现痕迹擦不干净,有可能被查出来,所以马上对外公布,让广大黑客群体发起攻击,以便淹没自己最初的攻击,达到隐藏自己的效果。
值得注意的是,虽然这篇在国外网站上的披露文章是英文的,但是其技术人员用了中文的标点符号,很有可能是国内的技术人员冒充外国人发的攻击详情。
目前,雷锋网发现,该漏洞在推特上也有安全人员提出来了,这位仁兄可能不太认识腾讯的安全小哥,直接@360来寻人,然后360把漏洞的链接发给了腾讯的人,认证为腾讯安全响应中心的人也在推特下面进行了回复,表示正在处理。
腾讯方面对雷锋网表示,7月3日下午6点左右,他们对部分媒体回应称,3日中午已经对官方网站上的SDK漏洞进行了处理,修复了已知的安全漏洞,并提醒商户及时更新。
消息来源:白帽汇,Freebuf
漏洞详情及演示过程:http://seclists.org/fulldisclosure/2018/Jul/3