滲透測試===使用BURPSUIT暴力破解某網站的手機驗證碼


 

手機短信驗證是企業給消費者(用戶)的一個憑證,通過手機短信內容的驗證碼來驗證身份。主要用來用戶注冊,找回密碼,用戶登錄等等作為強身份認證。

目前驗證碼的格式主要是數字,從4位到6位不等。一般來說驗證碼都有有效周期2~10分鍾,甚至更長,超過有效周期驗證碼自動失效。

那么如果要想在有效的時間里爆破驗證碼必須多線程。假設驗證碼是4位,從0000~9999的10000種可能用多線程在3分鍾內跑完並不是很難。

用到的工具是burpsuit。該工具屬於輕量級滲透工具,在kali-linux的300多種工具中,一直top10之內。

首先找到一個驗證碼是4位的網站。(4位數的手機驗證碼在很多網站中繼續被使用)

1

該網站有做驗證,但是改驗證措施只是對驗證碼發送量做控制作用,防止無限制觸發發送驗證碼。對我們破解它的驗證碼絲毫無影響。

使用burpsuit工具對它進行抓包,結果如下:

POST /api/check_telcode.php?mobile=18XXXXXXXXX HTTP/1.1
Accept: application/json, text/javascript, */
; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: https://user.xxxxxxxxxx.html
Accept-Language: zh-CN
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko
Host: user.xxxx.com
Content-Length: 23
DNT: 1
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: PHPSESSID=qreb11hclishnh0i24odm7la27; _uab_collina=155081416244717379002547; nb-referrer-hostname=user.XXXXX.com; nb-start-page-url=https%3A%2F%2Fuser.XXXXX.com% .....etc.....
param=9999&name=telcode*

抓包之后,使用intruder功能對其進行暴力破解。分析完請求數據后發現,這一步的post請求只有兩個參數。

param=9999&name=telcode

param=9999是我們剛才輸入的錯誤的驗證碼(此時正確的驗證碼雖已發送,但我們並不知道),name字段就可以忽略了。
在intrude界面中Positions選項卡,設置爆破點:

2

根據驗證碼的規則,設置爆破數據。(如果是爆破登陸密碼,可以從網上下載密碼庫文件。比如SecLists-master就收錄了top100-top1000000的常用弱密碼)因為是從0000~9999的純數字。所以設置如下:

3

設置線程為5:
4

開始破解,結果如下:
5

所有其他驗證碼返回length都是477,唯獨只有一個length是401。

憑直覺,這個數據應該就是驗證碼了。這時候再看手機上收到的驗證碼作為一個驗證。

6

發現和收到的驗證碼完全一致。而整個破解過程其實很快還沒等所有數據跑完。就基本能確定驗證碼是多少了。
爆破時間還不到1分鍾。

到這一步就沒再繼續了。

總結:
1. 四位數的驗證碼10000位,而六位數的驗證碼1000000位。單從爆破時間上來看就比4位數的多100被。所以在驗證碼的有效期內基本很小概率能破解驗證碼。
2. 盡可能的縮短驗證碼的有效時間降低破解風險。四位數的驗證碼全部爆破完基本超不過5分鍾。
3. 增加驗證碼校驗的驗證,上述案例中雖然有驗證。但並不是針對驗證碼的驗證。
4. 對訪問請求的控制。短時間內如果出現同一Ip的大量請求,可以將其盡可能的控制。

順便提一下

如果有任何問題,你可以在這里找到我 ,軟件測試交流qq群,209092584


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM