今天分享的這篇Writeup是作者在參與漏洞眾測中,針對目標系統的動態口令OTP (One Time Password),透過利用簡單的暴力枚舉方法,實現了對目標系統雙重驗證機制2FA (Two-Factor Authentication)的繞過或破解。目標系統是印度最大的旅行服務公司網站,其採用了動態口令OTP作為雙重驗證2FA的實現手段。
通常來說,OTP是從0000到9999的4位數組合,假如OTP有一萬種可能性的組合,在如今強大的計算機時代,處理10000種組合也只需幾分鐘的時間。所以,如果OTP的驗證機制不當,任何人都可以透過簡單的暴力枚舉來繞過它。
為什麼我可以繞過2FA?
目標系統對不成功的請求嘗試不作速率限制。
目標系統對不成功的請求嘗試沒有新的動態口令措施。
前提準備:
Web瀏覽器、BurpSuite。
繞過2FA的複現過程
繞過2FA的複現流程
1、開啟BurpSuite,使用手機號碼登入目標系統網站,在這裡,故意輸錯系統發送到你手機中的動態OTP(這裡我們隨便輸入1234),然後用BurpSuite捕獲流量;
從BurpSuite中我們可以看到OTP API的相關資訊– verifyOTP?otp=:
2、把這次OTP的發送過程右鍵Send to intruder:
#3、選擇otp=1234佔位符,並把它設定為簡單暴力列舉變數方式:
4、選擇Payload標籤項,把其修改為任意形式的組合,然後點選attack:
5、攻擊開始。從枚舉回應結果中,我們可以看到一個長度為2250的異常響應,不出意外,就是它了:
6、 用該OTP配合登錄,可以成功有效!
相關教學推薦:web伺服器安全性
#以上是簡單暴力枚舉法繞過目標系統2FA驗證機制的實驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!