值得注意的是,,目前漏洞的詳細(xì)信息以及攻擊方式已被公開,,安全人員建議使用JAVA語言SDK(軟件開發(fā)工具包)開發(fā)微信支付功能的商戶,,快速檢查并修復(fù)。(此處解釋一下,,微信官方發(fā)布了自己的微信支付開發(fā)包,許多開發(fā)人員選擇使用官方最新版本,,一般來講,,SDK是按照編程語言區(qū)分,如果網(wǎng)站使用的是同一種語言,,那么其開發(fā)使用的也就是對(duì)應(yīng)種語言,。但也有特殊情況,就是不使用官方的開發(fā)包,,而使用開源的或自行開發(fā)的,,這樣相對(duì)較少。)
那么,,微信支付的官方SDK究竟誰會(huì)用,?范圍多大?為什么黑客選擇陌陌和vivo開刀,?商家和用戶會(huì)受到哪些影響,?知道這個(gè)漏洞的黑客為什么不自己“悶聲發(fā)大財(cái)”,而要選擇將攻擊方式公開,?
誰會(huì)用到微信支付的SDK
文章開頭提到,,這個(gè)漏洞是關(guān)于微信支付的官方SDK的,那究竟誰會(huì)用到此類SDK呢,?
白帽匯安全總監(jiān)“BaCde”?告訴雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng)),,所有需要開通微信支付的商家都很有可能用到!
比如,,我們平時(shí)使用微信支付的時(shí)候,,都會(huì)有一個(gè)付款的二維碼,或者網(wǎng)購的時(shí)候,,也有微信的支付渠道,。這就需要商家與微信支付建立一個(gè)專屬通道,。以你去買面包為例,在你掃碼的瞬間,,微信支付和商家的對(duì)話是這樣的:
微信支付:你是哪家店,?
面包店:我是某某面包店,我的代號(hào)是***
微信支付:訂單是你生成的嗎,?
面包店:是的,。
微信支付:我收到了50塊,錢數(shù)對(duì)嗎,?
面包店:對(duì)的,。
微信支付:對(duì)的話你們訂單系統(tǒng)趕緊處理一下,人家付款成功了,。
面包店:好的,,這就處理。
這個(gè)過程叫“商戶回調(diào)接口”,,也就是說,,所有的商戶要想開通微信支付,不管是線上還是線下的,,都需要通過與微信支付的這個(gè)接口來交流,,這個(gè)接口有一套標(biāo)準(zhǔn)的定義,比如訂單號(hào),、用戶信息,、價(jià)格等,最后有一個(gè)簽名來保證雙方交易的真實(shí)可靠,。
這時(shí),,微信官方為了方便商戶,一般都會(huì)有一個(gè)官方的SDK,,來使得各家商戶更加順暢和安全地接入微信支付,,這時(shí),這個(gè)SDK開發(fā)包就存在了這些商戶的服務(wù)器上,,與此同時(shí),,開發(fā)包的漏洞也就直接影響了商戶服務(wù)器的安全性。
如果有一天,,黑客利用SDK上面的漏洞控制了商家的服務(wù)器,,那么這些訂單狀態(tài)、用戶信息和價(jià)格等就很有可能被黑客拿走并且進(jìn)行篡改,。
據(jù)BaCde透露,由于微信官方的SDK有問題,,目前所有使用基于微信支付JAVA?SDK開發(fā)的微信支付功能都可能受影響,。
那黑客為什么選擇陌陌和vivo來開刀呢,?聽起來,這兩家一個(gè)是手機(jī)廠商,,一個(gè)是社交軟件,,和我們平時(shí)刷二維碼或者網(wǎng)購的某某商家還是有區(qū)別。
BaCde解釋,,vivo這個(gè)可能是vivo的在線商城,,比如黑客可以用微信支付不花一分錢來買走在線商城的東西。而對(duì)于陌陌中招,,則有可能是因?yàn)樗梢酝ㄟ^微信支付進(jìn)行會(huì)員充值,,也有漏洞可以利用。
所以,,也許這名攻擊者是經(jīng)常用vivo手機(jī)的單身狗,?
商戶、用戶和黑客
如果你是一名商戶,,會(huì)有哪些影響,?
以在線商城的商戶為例,如果你所應(yīng)用的語言是JAVA(目前漏洞針對(duì)的是JAVA),,接入微信支付功能的第一步,,首先要在微信的官方網(wǎng)站找到JAVA語言的SDK開發(fā)包,當(dāng)開發(fā)人員編寫不規(guī)范而開發(fā)出有漏洞的微信支付功能,,黑客發(fā)現(xiàn)后,,就可通過竊取商戶信息,進(jìn)而偽造網(wǎng)絡(luò)請(qǐng)求進(jìn)行0元購買商品的操作,,以及獲取數(shù)據(jù)信息,。
這里要強(qiáng)調(diào)一下,雖然這里的開發(fā)人員是商戶的開發(fā)人員,,但其根本原因還是由于微信支付的SDK在某處存在安全問題,,所以要解決漏洞,還得從官方的SDK來解決,。
如果我是普通的用戶呢,?
最直接的影響就是,你在商家后臺(tái)的用戶信息已經(jīng)被暴露了,,而黑客拿到這些信息可以去暗網(wǎng)上兜售,。緊接著,你成為了垃圾信息的受害者,。
而對(duì)于黑客來說,,通過這個(gè)漏洞,不僅可以0元買買買,,還可以通過倒賣用戶信息小賺一筆,。
漏洞影響
雷鋒網(wǎng)發(fā)現(xiàn),,目前,陌陌和vivo已經(jīng)修復(fù)了相關(guān)的漏洞,,但針對(duì)此漏洞,,微信官方并未發(fā)布相關(guān)安全公告,也沒有更新微信支付的SDK版本,。
也就是說,,所有使用微信支付官方SDK的商戶,并且語言是JAVA的,,都還處于被攻擊的危險(xiǎn)之中,。
那既然微信官方都沒修復(fù),陌陌和vivo是怎么修復(fù)的,?
BaCde解釋,,陌陌和vivo本身有相應(yīng)的安全能力,可以修改SDK的相應(yīng)代碼進(jìn)行修復(fù),,自行解決,。但如果是一些小的商戶,就沒有這個(gè)能力了,。
據(jù)悉,,雖然目前該漏洞影響的是JAVA版本的SDK,但歷史上已經(jīng)出現(xiàn)過PHP版本的SDK存在同樣的漏洞,。據(jù)BaCde透露,,這次的漏洞是XML外部實(shí)體注入漏洞,即當(dāng)允許引用外部實(shí)體時(shí),,通過構(gòu)造惡意內(nèi)容,,可導(dǎo)致讀取任意文件、執(zhí)行系統(tǒng)命令,、探測(cè)內(nèi)網(wǎng)端口,、攻擊內(nèi)網(wǎng)網(wǎng)站等危害。
對(duì)于攻擊者來說,,這么好的賺錢機(jī)會(huì),,悶聲發(fā)大財(cái)就好了,為什么要選擇公開攻擊方式,?
據(jù)白帽匯創(chuàng)始人趙武推測(cè),,直接公開這種級(jí)別的大殺器確實(shí)太不尋常,他這樣做的原因,,不排除是黑客在利用漏洞的過程中發(fā)現(xiàn)痕跡擦不干凈,,有可能被查出來,所以馬上對(duì)外公布,,讓廣大黑客群體發(fā)起攻擊,,以便淹沒自己最初的攻擊,,達(dá)到隱藏自己的效果,。
值得注意的是,,雖然這篇在國(guó)外網(wǎng)站上的披露文章是英文的,但是其技術(shù)人員用了中文的標(biāo)點(diǎn)符號(hào),,很有可能是國(guó)內(nèi)的技術(shù)人員冒充外國(guó)人發(fā)的攻擊詳情,。
微信支付被曝漏洞
騰訊已經(jīng)知曉漏洞
目前,雷鋒網(wǎng)發(fā)現(xiàn),,該漏洞在推特上也有安全人員提出來了,,這位仁兄可能不太認(rèn)識(shí)騰訊的安全小哥,直接@360來尋人,,然后360把漏洞的鏈接發(fā)給了騰訊的人,,認(rèn)證為騰訊安全響應(yīng)中心的人也在推特下面進(jìn)行了回復(fù),表示正在處理,。
微信支付被曝漏洞