掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
昨天有一條關(guān)于微信支付0元購的消息在開發(fā)圈里炸開了鍋,所謂0元購并不是用戶抽獎,而是惡意攻擊者利用漏洞實(shí)現(xiàn)0元支付。
正常的支付基本流程是這樣的:用戶發(fā)起支付->調(diào)起微信支付->支付成功->微信支付服務(wù)器發(fā)送成功通知給應(yīng)用(比如某個商城)服務(wù)端->應(yīng)用服務(wù)端解析微信支付發(fā)送的通知->解析后的信息進(jìn)行必要對比確認(rèn)后更新訂單為已付款狀態(tài)。
然而該漏洞,就是惡意利用解析過程,可以造成讀任何文件、內(nèi)網(wǎng)探測、命令執(zhí)行等問題。
雖然這個問題是昨天火起來的,但實(shí)際上在前幾天就有陸陸續(xù)續(xù)報道,只是昨天被更多人所知曉而已。比如早在7月1日在Full Disclosure有一篇名為《XXE in WeChat Pay Sdk ( WeChat leave a backdoor on merchant websites)》的文章指出這個問題。
然后昨天微信支付官方就向商戶推送該漏洞提示:
實(shí)際上該漏洞跟微信支付本身沒什么太大關(guān)系,所以網(wǎng)上吃瓜群眾就借此來吐槽微信支付安全性,這實(shí)在是兩回事。這個漏洞其實(shí)就是很多開發(fā)者在對接微信支付的時候不嚴(yán)謹(jǐn)造成的,在解析微信支付異步通知推送的XML數(shù)據(jù)時造成漏洞的存在;此外造成很多吃瓜群眾誤解的原因是因?yàn)槔习姹镜奈⑿胖Ц秊ava版官方SDK存在該漏洞,而我看了一下php版的SDK,我這邊能找到的是2015年的,里面已經(jīng)在解析XML數(shù)據(jù)時禁止引用外部xml實(shí)體。
同時,在微信支付官方文檔中的《最佳實(shí)踐-最佳安全實(shí)踐》中專門針對該問題添加了一部分文檔,名為《關(guān)于XML解析存在的安全問題指引》,地址為:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_5。該文檔針對該問題做了相應(yīng)的風(fēng)險提示以及問題修復(fù)指南,同時還寫了php、java、Python、.net等主流開發(fā)語言的設(shè)置指引。
據(jù)了解該問題影響面還是不小的,從已經(jīng)報道的消息來看,其中不乏一些大商戶、大廠商也存在該問題。不過你是商戶還是開發(fā)者,結(jié)合自己實(shí)際來做相應(yīng)處理哦。
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流