又到月初了,你的花唄帳單還清了嗎?
如果有人告訴你,現在不用你花一分錢,就能在某些電商平臺隨便買,你會相信嗎?
恩,我知道聰慧的你,是不會相信天上掉餡餅的~
那如果這個人是黑客呢?
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
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。