使用burp插件captcha-killer識別圖片驗證碼


0x01 開發背景

說起對存在驗證碼的登錄表單進行爆破,大部分人都會想到PKav HTTP Fuzzer,這款工具在前些年確實給我們帶來了不少便利。反觀burp一直沒有一個高度自定義通殺大部分圖片驗證碼的識別方案,於是抽了點閑暇的時間開發了captcha-kille,希望burp也能用上各種好用的識別碼技術。其設計理念是只專注做好對各種驗證碼識別技術接口的調用!說具體點就是burp通過同一個插件,就可以適配各種驗證碼識別接口,無需重復編寫調用代碼。今天不談編碼層面如何設計,感興趣的可以去github看源碼。此處只通過使用步驟來說明設計的細節。

0x02 Step1:將獲取驗證碼的數據包發送到插件

使用burp抓取獲取驗證碼數據包,然后右鍵captcha-killer -> send to captcha panel發送數據包到插件的驗證碼請求面板。

將請求驗證碼數據包發送到插件將請求驗證碼數據包發送到插件

然后到切換到插件面板,點擊獲取即可拿到要識別的驗證碼圖片內容。

請求獲取驗證碼請求獲取驗證碼

注意:獲取驗證碼的cookie一定要和intruder發送的cookie相同!

0x03 Step2:配置識別接口的地址和請求包

拿到驗證碼之后,就要設置接口來進行識別了。我們可以使用網上尋找免費的接口,用burp抓包,然后右鍵發送到插件的接口請求面板。

將接口調用請求發送到插件將接口調用請求發送到插件

然后我們把圖片內容的位置用標簽來代替。比如該例子使用的接口是post提交image參數,參數的值為圖片二進制數據的base64編碼后的url編碼。那么Request template(請求模版)面板應該填寫如下:

接口請求模版設置接口請求模版設置

ID 標簽 描述
1 <@IMG_RAW></@IMG_RAW> 代表驗證碼圖片原二進制內容
2 <@URLENCODE></@URLENCODE> 對標簽內的內容進行url編碼
3 <@BASE64></@BASE64> 對標簽內的內容進行base64編碼

最后點擊“識別”即可獲取到接口返回的數據包,同時在request raw可以看到調用接口最終發送的請求包。

模版被渲染為最終的請求模版被渲染為最終的請求

0x03 Step3:設置用於匹配識別結果的規則

通過上一步我們獲取到了識別接口的返回結果,但是插件並不知道返回結果中,哪里是真正的識別結果。插件提供了4中方式進行匹配,可以根據具體情況選擇合適的。

ID 規則類型 描述
1 Repose data 這種規則用於匹配接口返回包內容直接是識別結果
2 Regular expression 正則表達式,適合比較復雜的匹配。比如接口返回包{"coede":1,"result":"abcd"}說明abcd是識別結果,我們可以編寫規則為result":"(.*?)"\}
3 Define the start and end positions 定義開始和結束位置,使用上面的例子,可以編寫規則{"start":21,"end":25}
4 Defines the start and end strings 定義開始和結束字符,使用上面的例子,可以編寫規則為{"start":"result\":\","end":"\"\}"}

通過分析我們知道,接口返回的json數據中,字段words的值為識別結果。我們這里使用Regular expression(正則表達式)來匹配,然后選擇yzep右鍵標記為識別結果,系統會自動生成正則表達式規則" (.*?)"\}\]

設置匹配方式和自動生成規則設置匹配方式和自動生成規則

注意:若右鍵標記自動生成的規則匹配不精確,可以人工進行微調。比如該例子中可以微調規則為"words"\: "(.*?)"\}將更加准確!

到達這步建議將配置好常用接口的url,數據包已經匹配規則保存為模版,方便下次直接通過右鍵模板庫中快速設置。同時插件也有默認的模版供大家使用與修改。

保存設置好的配置,方便下次快速配置保存設置好的配置,方便下次快速配置

0x04 Step4:在Intruder模塊調用

配置好各項后,可以點擊鎖定對當前配置進行鎖定,防止被修改導致爆破失敗!接着安裝以下步驟進行配置

設置Intruder的爆破模式和payload位置設置Intruder的爆破模式和payload位置

驗證碼payload選擇有插件來生成驗證碼payload選擇有插件來生成

進行爆破,可以通過對比識別結果看出識別率進行爆破,可以通過對比識別結果看出識別率

0x05 使用小案例

后續將通過小案例來演示,如何通過captcha-killer讓burp使用上各種技術識別驗證碼(免費方案),敬請期待!

  • 《captcha-killer調用tesseract-ocr識別驗證碼》[待發布]
  • 《captcha-killer調用完美識別驗證碼系統》[待發布]
  • 《captcha-killer調用百度ocr識別驗證碼》[待發布]
  • 《capatch-killer+機器學習識別驗證碼》[待發布]


免責聲明!

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



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