有網(wǎng)友在國外安全論壇爆出微信支付的漏洞,微信表示已經(jīng)緊急修復(fù),提請大家及時(shí)更新。
又到月初了,你的花唄賬單還清了嗎?
如果有人告訴你,現(xiàn)在不用你花一分錢,就能在某些電商平臺隨便買,你會相信嗎?
恩,我知道聰慧的你,是不會相信天上掉餡餅的~
那如果這個(gè)人是黑客呢?
7月3日,據(jù)白帽匯安全研究院的消息,有網(wǎng)友在國外的安全社區(qū)公布了微信支付官方SDK(軟件工具開發(fā)包)存在的嚴(yán)重漏洞,此漏洞可導(dǎo)致商家服務(wù)器被入侵,一旦攻擊者獲得商家的關(guān)鍵安全密鑰(md5-key和merchant-Id等),他就可以通過發(fā)送偽造信息來欺騙商家而無需付費(fèi)購買任何東西。
微信支付被曝漏洞
在使用微信支付時(shí),商家需要提供通知網(wǎng)址以接受異步支付結(jié)果。問題是微信在JAVA版本SDK中的實(shí)現(xiàn)存在一個(gè)xxe漏洞。攻擊者可以向通知URL構(gòu)建惡意payload,根據(jù)需要竊取商家服務(wù)器的任何信息。
換句話說,黑客利用微信支付的這個(gè)漏洞,能實(shí)現(xiàn)0元買買買的情況。
這并不是說說而已,這位網(wǎng)友還直接甩出了兩張圖,展示出漏洞利用的過程,中招者是vivo和陌陌。
▲陌陌的微信支付漏洞利用過程
▲vivo的微信支付漏洞利用過程
值得注意的是,目前漏洞的詳細(xì)信息以及攻擊方式已被公開,安全人員建議使用JAVA語言SDK(軟件開發(fā)工具包)開發(fā)微信支付功能的商戶,快速檢查并修復(fù)。(此處解釋一下,微信官方發(fā)布了自己的微信支付開發(fā)包,許多開發(fā)人員選擇使用官方最新版本,一般來講,SDK是按照編程語言區(qū)分,如果網(wǎng)站使用的是同一種語言,那么其開發(fā)使用的也就是對應(yīng)種語言。但也有特殊情況,就是不使用官方的開發(fā)包,而使用開源的或自行開發(fā)的,這樣相對較少。)
那么,微信支付的官方SDK究竟誰會用?范圍多大?為什么黑客選擇陌陌和vivo開刀?商家和用戶會受到哪些影響?知道這個(gè)漏洞的黑客為什么不自己“悶聲發(fā)大財(cái)”,而要選擇將攻擊方式公開?
誰會用到微信支付的SDK
文章開頭提到,這個(gè)漏洞是關(guān)于微信支付的官方SDK的,那究竟誰會用到此類SDK呢?
白帽匯安全總監(jiān)“BaCde”?告訴,所有需要開通微信支付的商家都很有可能用到!
比如,我們平時(shí)使用微信支付的時(shí)候,都會有一個(gè)付款的二維碼,或者網(wǎng)購的時(shí)候,也有微信的支付渠道。這就需要商家與微信支付建立一個(gè)專屬通道。以你去買面包為例,在你掃碼的瞬間,微信支付和商家的對話是這樣的:
微信支付:你是哪家店?
面包店:我是某某面包店,我的代號是***
微信支付:訂單是你生成的嗎?
面包店:是的。
微信支付:我收到了50塊,錢數(shù)對嗎?
面包店:對的。
微信支付:對的話你們訂單系統(tǒng)趕緊處理一下,人家付款成功了。
面包店:好的,這就處理。
這個(gè)過程叫“商戶回調(diào)接口”,也就是說,所有的商戶要想開通微信支付,不管是線上還是線下的,都需要通過與微信支付的這個(gè)接口來交流,這個(gè)接口有一套標(biāo)準(zhǔn)的定義,比如訂單號、用戶信息、價(jià)格等,最后有一個(gè)簽名來保證雙方交易的真實(shí)可靠。
這時(shí),微信官方為了方便商戶,一般都會有一個(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的在線商城,比如黑客可以用微信支付不花一分錢來買走在線商城的東西。而對于陌陌中招,則有可能是因?yàn)樗梢酝ㄟ^微信支付進(jìn)行會員充值,也有漏洞可以利用。
所以,也許這名攻擊者是經(jīng)常用vivo手機(jī)的單身狗?
商戶、用戶和黑客
如果你是一名商戶,會有哪些影響?
以在線商城的商戶為例,如果你所應(yīng)用的語言是JAVA(目前漏洞針對的是JAVA),接入微信支付功能的第一步,首先要在微信的官方網(wǎng)站找到JAVA語言的SDK開發(fā)包,當(dāng)開發(fā)人員編寫不規(guī)范而開發(fā)出有漏洞的微信支付功能,黑客發(fā)現(xiàn)后,就可通過竊取商戶信息,進(jìn)而偽造網(wǎng)絡(luò)請求進(jìn)行0元購買商品的操作,以及獲取數(shù)據(jù)信息。
這里要強(qiáng)調(diào)一下,雖然這里的開發(fā)人員是商戶的開發(fā)人員,但其根本原因還是由于微信支付的SDK在某處存在安全問題,所以要解決漏洞,還得從官方的SDK來解決。
如果我是普通的用戶呢?
最直接的影響就是,你在商家后臺的用戶信息已經(jīng)被暴露了,而黑客拿到這些信息可以去暗網(wǎng)上兜售。緊接著,你成為了垃圾信息的受害者。
而對于黑客來說,通過這個(gè)漏洞,不僅可以0元買買買,還可以通過倒賣用戶信息小賺一筆。
漏洞影響
發(fā)現(xiàn),目前,陌陌和vivo已經(jīng)修復(fù)了相關(guān)的漏洞,但針對此漏洞,微信官方并未發(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)命令、探測內(nèi)網(wǎng)端口、攻擊內(nèi)網(wǎng)網(wǎng)站等危害。
對于攻擊者來說,這么好的賺錢機(jī)會,悶聲發(fā)大財(cái)就好了,為什么要選擇公開攻擊方式?
據(jù)白帽匯創(chuàng)始人趙武推測,直接公開這種級別的大殺器確實(shí)太不尋常,他這樣做的原因,不排除是黑客在利用漏洞的過程中發(fā)現(xiàn)痕跡擦不干凈,有可能被查出來,所以馬上對外公布,讓廣大黑客群體發(fā)起攻擊,以便淹沒自己最初的攻擊,達(dá)到隱藏自己的效果。
值得注意的是,雖然這篇在國外網(wǎng)站上的披露文章是英文的,但是其技術(shù)人員用了中文的標(biāo)點(diǎn)符號,很有可能是國內(nèi)的技術(shù)人員冒充外國人發(fā)的攻擊詳情。
微信支付被曝漏洞
騰訊已經(jīng)知曉漏洞
目前,發(fā)現(xiàn),該漏洞在推特上也有安全人員提出來了,這位仁兄可能不太認(rèn)識騰訊的安全小哥,直接@360來尋人,然后360把漏洞的鏈接發(fā)給了騰訊的人,認(rèn)證為騰訊安全響應(yīng)中心的人也在推特下面進(jìn)行了回復(fù),表示正在處理。
微信支付被曝漏洞
佰佰安全網(wǎng):互聯(lián)網(wǎng)時(shí)代沒有絕對的安全,你必須有這樣的覺悟。
責(zé)任編輯:武偉偉
關(guān)鍵詞
·疾病高發(fā)!北京協(xié)和醫(yī)院急診科,日均接診量大約有800名患者
·熊孩子!安徽淮南一小區(qū)電梯轎廂失火!監(jiān)控:男孩點(diǎn)燃板材
·招真多??!留學(xué)生代發(fā)國外朋友圈30元一條 僅僅是虛榮心嗎
·邯鄲一超市因2瓶過期啤酒被罰款2萬,是否過罰相當(dāng)還須思量