
使用NestJS和Prisma構(gòu)建REST API:身份驗證
研究員發(fā)現(xiàn),MCDelivery 的 API 存在“破損的對象級授權(quán)”(BOLA)漏洞。攻擊者可以通過簡單的 URL 操作(如更改訂單 ID),獲取其他用戶的訂單詳情,包括訂單狀態(tài)、配送地址和用戶信息等。
更令人擔(dān)憂的是,攻擊者還能通過精心設(shè)計的 API 調(diào)用序列,劫持正在進行的訂單。例如,攻擊者可以在用戶支付前,將訂單的配送地址更改為自己的地址,從而免費獲取食物。
在訂單結(jié)算流程中,研究員發(fā)現(xiàn)了一個“破損的對象屬性級授權(quán)”漏洞。攻擊者可以修改購物車中商品的價格信息,將高價商品的價格篡改為極低值(如 1 印度盧比,約合 1 美分),并通過支付驗證完成訂單。這一漏洞使得攻擊者能夠以幾乎可以忽略不計的成本訂購大量食品。
除了訂單信息泄露外,MCDelivery 的 API 還暴露了配送員的敏感信息,包括電話號碼、電子郵件地址、姓名和車牌號碼等。這些信息可能被用于惡意目的,嚴(yán)重侵犯配送員的隱私。
研究員還發(fā)現(xiàn),攻擊者可以下載任意訂單的發(fā)票,并提交針對其他用戶訂單的虛假反饋。這些操作均無需額外驗證,進一步凸顯了系統(tǒng)在權(quán)限管理上的缺陷。
盡管 MCDelivery 的管理員面板相對安全,但研究員發(fā)現(xiàn)了一個可公開訪問的 KPI 報告端點,該端點接受普通用戶的 JWT 令牌。這意味著攻擊者可能獲取麥當(dāng)勞內(nèi)部的運營數(shù)據(jù)。
訂單信息劫持
價格篡改操作
敏感信息獲取
研究員將這些漏洞報告給了麥當(dāng)勞印度的 Bug Bounty 計劃。麥當(dāng)勞團隊對報告給予了高度重視,并在 90 天內(nèi)完成了所有漏洞的修復(fù)。研究員因其貢獻獲得了 240 美元的獎勵。
用戶層面
用戶應(yīng)提高對個人信息泄露風(fēng)險的認(rèn)識,避免在不安全的網(wǎng)絡(luò)環(huán)境中使用配送服務(wù)。
定期檢查訂單歷史和賬戶活動,及時發(fā)現(xiàn)異常交易。
企業(yè)層面
麥當(dāng)勞事件凸顯了實施全面 Bug Bounty 計劃的重要性。企業(yè)應(yīng)鼓勵白帽黑客發(fā)現(xiàn)并報告漏洞,以降低安全風(fēng)險。
在 API 設(shè)計中,需嚴(yán)格遵循最小權(quán)限原則,確保所有數(shù)據(jù)訪問和修改操作均經(jīng)過嚴(yán)格的身份驗證和授權(quán)。
麥當(dāng)勞 MCDelivery 系統(tǒng)的漏洞暴露了當(dāng)前食品配送行業(yè)在網(wǎng)絡(luò)安全領(lǐng)域面臨的挑戰(zhàn)。盡管這些漏洞已被修復(fù),但事件提醒我們,隨著數(shù)字化服務(wù)的普及,安全防護措施必須與時俱進。對于企業(yè)而言,建立健全面向公眾的漏洞報告機制,是保護用戶數(shù)據(jù)和維護品牌聲譽的關(guān)鍵策略。
通過此次事件,我們不僅見證了技術(shù)研究員的專業(yè)能力,也再次印證了白帽黑客在維護網(wǎng)絡(luò)安全生態(tài)中的重要作用。希望未來更多企業(yè)能夠重視安全問題,與安全研究社區(qū)攜手共建更安全的網(wǎng)絡(luò)環(huán)境。
原文引自YouTube視頻:https://www.youtube.com/watch?v=JA4Vii3tyUk