Practical Exploitation of DoS in Bug Bounty, Roni Carta | Bug Bounty Village, DEF CON 32
三句話摘要
在漏洞賞金計劃中發現和利用拒絕服務攻擊的實戰技巧與案例分析。 透過系統性研究和負責任的披露,DOS攻擊雖名義上超出範圍,卻因其對基礎設施影響最大而成為最高價值的漏洞來源——關鍵是學會在非生產環境測試,與安全團隊溝通,並把單點的效能問題放大成可測量的系統失敗。 DOS在漏洞賞金中的特殊地位:雖然DOS攻擊常被標記為超出範圍(因為影響太大可能完全癱瘓服務),但透過在非生產環境測試和與程式溝通,反而能發現價值最高的漏洞。講者強調需要在進行測試前諮詢程式,讓對方做好監控準備。
重點整理
重點- 1
DOS在漏洞賞金中的特殊地位:雖然DOS攻擊常被標記為超出範圍(因為影響太大可能完全癱瘓服務),但透過在非生產環境測試和與程式溝通,反而能發現價值最高的漏洞。講者強調需要在進行測試前諮詢程式,讓對方做好監控準備。
- 2
資料庫效能漏洞是最大金礦:N+1查詢問題(當單個請求觸發多個資料庫查詢)可產生46,000美元的賞金,其中Snorlax一人獲得30,000美元。攻擊者可透過增加資料量來放大DOS效果,資料越多影響越大。講者開發了Tridos Burp外掛來被動識別耗時超過設定閾值的請求。
- 3
協議層和快取機制是高效攻擊向量:Slowloris攻擊透過建立無限重定向迴圈耗盡伺服器套接字,快取投毒攻擊可利用快取鍵機制向所有使用者傳播惡意內容。npm registry案例中僅靠一個惡意請求就導致所有使用者安裝失敗,最終獲得10,000美元賞金。
- 4
GraphQL預設配置蘊藏大量DOS向量:迴圈定義、請求批處理、別名功能、指令過載等都能用來放大請求。講者發現在Google的GraphQL中透過重複簽名指令能將響應時間從0.9秒拉長到100秒,總共在GraphQL相關漏洞上獲得70,000美元賞金。
實用技巧與重點
乾貨- 工具與技術:
- Tridos(Burp Suite擴充套件,識別耗時>x秒的請求)
- sanitize HTML庫(存在href引數處理缺陷)
- GraphQL內省(預設暴露,可直接探測目標結構)
- WebSocket(GraphQL中常被忽視的繞過速率限制向量)
- 具體案例與金額:
- 格式錯誤HTML payload導致前端崩潰:$350
- N+1查詢漏洞:$46,000(單個漏洞$15,000-30,000)
- Slowloris/SSRF:$15,000(兩個漏洞)
- 登入服務暴力破解(600賬戶鎖定):影響評分5/5但賞金未提及
- Zip檔案解壓磁碟填滿:賞金未提及
- npm registry快取投毒:$10,000(初始$500升級)
- GraphQL總計:$70,000
- Google指令過載:$6,000
- 各種GraphQL漏洞組合
- 研究週期:2022年-2026年,集中在8個月
- 總賞金:近$150,000
- 關鍵檢測引數:
- N+1問題:GET請求響應時間隨資料量線性增長(10秒以上為紅旗)
- Slowloris:建立無限重定向迴圈(路徑A→路徑B→路徑A)
- GraphQL批處理:單個HTTP請求包含數百個相同查詢,響應時間從毫秒級跳升到秒級
結論
結論“透過系統性研究和負責任的披露,DOS攻擊雖名義上超出範圍,卻因其對基礎設施影響最大而成為最高價值的漏洞來源——關鍵是學會在非生產環境測試,與安全團隊溝通,並把單點的效能問題放大成可測量的系統失敗。”
完整解析
詳細講者Ronnie Carter來自法國格勒諾布林,是Lupin Homes安全研發公司的共同創辦人。這場演講分享了他與團隊(包括Snorlax、Reszo等)兩年間在主流科技公司發現DOS漏洞的實戰經驗。
演講首先澄清了DOS和DDOS的概念差異:DOS來自單機資源對比,若攻擊者資源充足可直接癱瘓目標;DDOS則需多臺機器協作。講者指出,DOS在漏洞賞金中的處境尷尬——雖然影響巨大,但公司為避免被完全癱瘓而將其標記為超出範圍。然而透過負責任的測試方式,在非生產環境驗證、事先通知程式並獲得同意,反而能發現最高價值的漏洞。
前端攻擊最容易入手。講者描述了一個案例:某應用使用sanitize HTML庫清理使用者輸入,但庫在處理undefined的href引數時會完全崩潰前端。另一技巧是傳送格式錯誤的JSON——透過雙反引號轉義繞過後端驗證,但前端解析時崩潰。這類漏洞賞金不高($350),但提供了進階技巧的跳板。
真正的金礦是N+1資料庫查詢問題。講者哥哥(後端開發)教他這個反模式:單個請求觸發n個額外查詢導致效能崩潰。攻擊者可以構造JSON payload建立巢狀陣列,每個元素都觸發查詢。當建立10,000個物件後,GET請求耗時10秒以上——明顯的N+1訊號。講者用Burp Intruder設定無限載荷後,後端直接崩潰。一個漏洞賺$15,000,Snorlax在15個類似漏洞中獲得$30,000。
網路層攻擊包括Slowloris變種。講者建立無限重定向迴圈(路徑A重定向到路徑B,路徑B又指回路徑A),讓伺服器耗盡所有套接字。這技巧能將盲目SSRF轉化為嚴重DOS,兩個漏洞獲$15,000。
最有趣的案例是npm registry的快取投毒。講者受James Kettle關於Cache Poisoning的研究啟發,假設快取鍵為完整路徑。當傳送含惡意頭的請求觸發404時,404被快取並返回給所有後續使用者。指令碼在後臺執行npm install時,所有使用者都收到404。這漏洞最初賞金僅$500,但npm官方意識到影響後升至$10,000。
最複雜的是GraphQL生態。講者找到多個向量:迴圈定義(物件自指)、請求批處理(單請求含數百個查詢)、別名(不同引數下重複查詢)、指令過載(重複指令使請求體擴充套件數倍)。講者在Google發現最精妙的案例——GraphQL指令用於簽署請求體,但簽名檢查不完整,允許新增多個簽名。當達到100萬個指令時,單個請求耗時1分40秒。Google為此支付$6,000。WebSocket是被忽視的向量,通常沒有速率限制,可繞過所有安全保護。
整個研究歷時2年多,集中在最後8個月產出。講者與多位出色的漏洞獵手協作,總共透過漏洞賞金賺取近$150,000。他強調這類技術雖常超出範圍,但對漏洞獵手來說,DOS可作為發掘其他漏洞思路的意外收穫——當想法枯竭時,尋找一個DOS漏洞往往能找到,將其轉化為賞金。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

