今天分享的這篇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服務器安全