挖洞經驗 | 一次性驗證密碼(OTP)的簡單繞過
摘要: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驗證區域提示“賬戶身份驗證成功”!