captcha-killer burp驗證碼識別插件初體驗

0x01 使用背景

在滲透測試和src挖洞碰到驗證碼不可繞過時,就會需要對存在驗證碼的登錄表單進行爆破,以前一直使用PKav HTTP Fuzzer和伏羲驗證碼識別來爆破,但是兩者都有缺點PKav HTTP Fuzzer只能對簡單的驗證碼進行識別,伏羲驗證碼識別需要自己製作驗證碼識別的模組需要耗費一定時間訓練,而captcha-killer可以直接調用雲打碼平台的驗證碼識別介面可以帶來一定的便利(花費錢的代價)。

github項目地址:https://github.com/c0ny1/captcha-killer

0x02 調用百度ocr識別驗證碼

首先想到了調用百度ocr識別驗證碼,一天有5w次免費.

創建一個應用然後記錄API Key Secret Key用來獲取Access Token具體可以看

https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

使用插件captcha-killer自帶的baiduocr模板

更改這兩個地方為你的應用的介面地址和access_token

多次試驗以後發現百度OCR用來識別驗證碼的正確率非常低,而且百度OCR不支援gif格式的圖片識別

0x03 調用雲打碼平台識別驗證碼

首先找了一個打碼平台:http://www.ttshitu.com/

沖了十塊錢以後查看開發文檔: http://www.ttshitu.com/docs/index.html#pageTitle

構造http請求模板如下

POST /base64 HTTP/1.1  Host: api.ttshitu.com  Upgrade-Insecure-Requests: 1  User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9  Accept-Encoding: gzip, deflate  Accept-Language: zh-CN,zh;q=0.9  Cookie: Hm_lvt_d92eb5418ecf5150abbfe0e505020254=1585994993,1586144399; SESSION=5ebf9c31-a424-44f8-8188-62ca56de7bdf; Hm_lpvt_d92eb5418ecf5150abbfe0e505020254=1586146123  Connection: close  Content-Type: application/json; charset=UTF-8  Content-Length: 2658    {"username":"*","password":"*","typeid":"1","image":"<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>"}  

username password填自己的 typeid為識別的類型1代表純數字,自己填寫正則匹配驗證碼

識別效果還是可以大概30個錯一個的樣子

全部調整好了就可以在Intruder模組調用記住Intruder中的cookie要和驗證碼插件那裡的cookie一樣

然後就可以開始爆破了

測試後發現多執行緒會導致大量驗證碼錯誤,插件應該不支援多執行緒,驗證碼還沒識別完成,已經被另一個執行緒刷新改變了