被盜4900萬,網際網路巨頭竟敗給“小學生”

qinjianxiang發表於2022-03-10

上次講了淘寶把鑰匙插在保險櫃上洩漏11.8億使用者手機號的故事,吃瓜群眾普遍反映乾貨太多,技術太高深,篇幅太長,那麼今天來個人人都能看懂的。

一頓操作猛如虎,
一看餘額兩萬五。
不勞而獲忍不住,
三年牢飯苦煞吾。

《那些年,網際網路巨頭犯過的低階錯誤》第二集來啦,有請我的同事小亮,一個浙大畢業造無人機的小哥哥,給大家講講小學生黑掉百度外賣4900萬的故事。


以下為小亮同學的處女作


人生的三大問,是什麼?要我說,三大問就是“早飯吃什麼?”、“午飯吃什麼?”、“晚飯吃什麼?”。

打工人日子苦,每一頓飯都要思索再三?

但是吧,萬一平臺賬戶餘額千萬元的“壕”,竟是我自己,那還愁什麼“三大問”。小孩子才做選擇題,成年人我全都要!

“我全都要”

“錢錢都是他們的,我什麼都沒有”?不存在的!百度外賣,助力每一個夢想?(要坐牢的,別試)


1. 千萬餘額誕生記

“百度外賣”平臺系統被非法侵入,4900餘萬元被篡改,下單單數覆蓋全國多個地區,人數達百餘人,直接消費損失30餘萬元。
《北京青年報》 2018-01-30 A09

2017年10月的一天,鄭某照常開啟百度外賣平臺,準備來份外賣。

好巧不巧,餘額沒了。難道得餓肚子?

那不能呀,肯定得弄點錢。看著賬戶所剩無幾的餘額,他靈光一閃,一個好法子應運而生。

一頓操作猛如虎,再看餘額兩萬五!

獨樂樂不如眾樂樂,這一“偉大發現”不久就出現在群聊中、論壇上,收穫一眾“樓主好人”、“lz一生平安”。

當然,認知差不論何時,總是能賺錢的,按下不表。

短時間內大江南北的網友齊上陣,“薅”的“羊毛”加起來有千萬元之多。

這一天,百度外賣“成就”了不少一日百萬富翁。


2. “生財聖手”方法論

那麼(聰明機智的)犯罪嫌疑人鄭某,究竟是鑽了什麼漏子呢?

報導中對於此次案件的描述,用詞為“非法侵入”、“篡改”,案件性質卻是盜竊案。

借用一下範大將軍的經典語錄,意思還就是說的那個意思:
“人家百度外賣也有理由說的,我在的什麼公司啊,我在的BAT之一的百度公司,你這鄭某是什麼人啊,你來hack我?犯罪嫌疑人是什麼水平?就這一個人,他能hack嗎?hack不了,沒這個能力知道吧?”

那麼此次“非法侵入”(劃去)盜竊事件是如何發生的呢?背後的原理真是簡單得不得了,十字路口隨便丟塊石頭,都能砸到兩個會這種“侵入”的。

ucuu talk

首先,明確漏洞所在位置。所謂的“系統漏洞”,有且只有發生在百度外賣平臺的提現系統中,具體表現為:提現操作可以增加賬戶餘額。

肯定有小夥伴要說了:“不對啊!提現,賬戶餘額肯定減少了,怎麼還能增加呢?”

如果有同樣的疑惑,沒問題,接著往下看。

然後,明確漏洞處的業務流程。提現操作,即將平臺虛擬賬戶中的金額依照使用者的需求數量,轉移到另一賬戶中。反映在資料上,提現的操作就是 “原先賬戶餘額”減去“提現金額”,得到“最新賬戶餘額”,是一個簡單的減法操作。

減法能出什麼錯呢?還真能!可別想當然,減去的數可以是正數,也可以是負數。

最後,操作!賺錢!(不是)。漏洞發生時,百度外賣平臺提現系統中,使用者填寫的“提現金額”的數值,還就真可以為負數!這意味著“原先賬戶餘額”減去了一個負數,“最新賬戶餘額”相較於先前,反而增加了!
describe
離譜,確實離譜。

正常的提現業務系統裡,操作的減法運算應受到足夠限制,包括限制“原先賬戶餘額”要大於等於“提現金額”(否則新的賬戶餘額會變成負數)、限制“提現金額”要大於0(確保“提現”操作使得賬戶餘額減少了)。

很明顯,百度外賣的提現業務程式碼中,缺少了對於“提現金額”的引數校驗,減法運算中“原先賬戶餘額”可以減去負數,那麼“最新賬戶餘額”自然就增大了。

恭喜百度外賣提現系統,達成成就:“虛空印鈔機”


3. 安全事故警示錄

2018年1月4日,北京市海淀區人民檢察院以涉嫌盜竊罪批准逮捕鄭某。鄭某為自己的“鑽漏子”行為付出了法律的代價。

案件另一方的百度外賣平臺,直接消費損失近30萬元人民幣。漏洞風波過後,百度外賣的名聲漸漸隱去,只留得餓了麼、美團外賣繼續在網際網路外賣市場中拼殺。

網際網路三巨頭如百度,旗下產品在涉及金錢交易業務方面,也曾犯下引數驗證缺失的簡單錯誤,且被大範圍利用,造成巨量損失,屬實不應該。

發現漏洞莫貪心,伸手必被抓;小小負號,亦可造成千萬元損失。無處不在的安全漏洞,需要廣大網際網路企業時刻注意,小心提防


關注我們的微信公眾號,持續為您解讀《那些年,巨頭犯下的低階錯誤》
2dcode

相關文章