摘要:9、從Burp的抓包中,我們獲得了上個步驟隨意輸入OTP驗證的請求,然後同樣按照Do Intercept >Response To This Request設置攔截獲取響應包,如下:。假設目標網站爲example.com,當我在其中創建了用戶賬號之後,我的註冊郵箱中就收到了一個一次性驗證密碼(OTP),該OTP目的是通過驗證郵箱來確認我的身份。

今天分享的是作者在衆測過程中實現的一次性驗證密碼(OTP)繞過技巧,通過攔截修改響應中的內容即可有效繞過OTP,姿勢非常簡單,但也值得學習借鑑,一起來看看。

漏洞發現

假設目標網站爲example.com,當我在其中創建了用戶賬號之後,我的註冊郵箱中就收到了一個一次性驗證密碼(OTP),該OTP目的是通過驗證郵箱來確認我的身份。

開啓Burp抓包後,我輸入了正確的OTP後,請求的響應簡潔明瞭,其中包含一個簡單的消息頭’HTTP/1.1 200 Created’和一個大括號{} 的消息體。此時我想到了來嘗試繞過這種OTP機制。

漏洞復現

1、使用郵箱[email protected]創建賬戶;

2、之後,郵箱[email protected]會收到一個OTP驗證密碼;

3、把該OTP複製到驗證區域,對用戶身份進行驗證。此時開啓Burp抓包,在當前請求場景下,通過右鍵-Do Intercept >Response To This Request設置攔截響應包:

然後,我們攔截獲得了正確OTP驗證的響應包如下:

4、完成一次正確的OTP驗證操作;

5、現在,用受害者郵箱[email protected]進行賬戶創建;

6、現在,可以肯定,目標網站會向受害者郵箱[email protected]發送了一個OTP驗證碼;

7、但是,因爲我沒有受害者郵箱[email protected]的登錄權限,就只有嘗試繞過了;

8、我們在目標網站的OTP驗證區域隨意輸入一串OTP驗證碼;

9、從Burp的抓包中,我們獲得了上個步驟隨意輸入OTP驗證的請求,然後同樣按照Do Intercept >Response To This Request設置攔截獲取響應包,如下:

10、可以看到,響應包提示驗證失敗了,其中的消息頭和消息體爲’HTTP/1.1 400 Bad Request’ 和{“error”: “user_not_verified”};

11、現在,我們把響應包中的消息頭和消息體分別替換爲:’HTTP/1.1 200 Created’ 和{},然後點擊響應轉發“Forward”;

12、接下來,奇蹟出現了,目標網站的OTP驗證區域提示“賬戶身份驗證成功”!

相關文章