What is race condition?
Race Condition 是一種「時間差漏洞」。當系統在處理多個同時發生的請求時,因為步驟之間沒有做好鎖定(locking),就會產生邏輯錯誤。
例如轉帳:假設你的錢包有 100 元,轉帳流程分三步:① 檢查餘額 → ② 送出錢 → ③ 扣除餘額。
正常情況下,轉一次 100 元後餘額歸零,沒問題。但如果你同時發出兩個轉帳請求,事情就變了:
請求 A 檢查餘額:100(通過)
請求 B 檢查餘額:100(也通過,因為 A 還沒扣錢)
請求 A 送出 100 元
請求 B 也送出 100 元
扣款才開始執行……
結果你只有 100 元,卻成功轉出了 200 元。這就是 Race Condition。
解題
在模擬器上隨意連接一些邏輯閘
使用 Burp Suite 攔截送出的請求
使用 Burp Suite 的 Intruder 功能,以 Sniper 模式大量重送同一個請求
因為伺服器沒有對並行請求做好防護,觸發Race Condition,伺服器回傳flag

取得flag
picoCTF{D0nt_Use_Unsecure_f@nctionsba15f0f7}
提交flag



說些什麼吧!