pj帶有驗證碼的驗證。
pj步驟:
0.安裝burpsuite和第三方插件 captcha-killer
1.收集字典,注冊OCR服務
2.了解目標運行邏輯,抓取關鍵數據包
3.在數據包上裝載payload,開始pj
0.安裝burpsuite之前文章介紹過。這里要注意,第三方插件 captcha-killer只能運行burpsuite1.7上在2021上測試失敗,java版本必需是1.8。因為在1.8后刪除了base64位編碼支持。
下載 captcha-killer https://github.com/c0ny1/captcha-killer/releases ,注意有牆 ,下載可執行文件jar。
打開burp,按照下圖導入插件
1.需要預先准備兩個東西,一個是字典,一個是第三方OCR。這兩樣東西是成功的關鍵因素。
字典,通過平時在互聯網搜集,建議使用弱口令字典,或者定制字典。我為了方便下載了一個弱口令先試試、
ocr有百毒、圖鑒等等,個人建議使用圖鑒,識別更好點,一個二維碼收0.2厘。注冊地址 http://www.ttshitu.com/user/index.html
注冊好之后登錄,點擊在線測試服務,你可以把你的圖片驗證碼上傳一張看看識別結果怎么樣,如果可以就繼續,不行換其他服務。
點擊 個人中心 - 充值 ,我這里購買 按需收費,買了10元的。你也可以選擇套餐。你要跑多少數據包就買多少錢的套餐。
2.通過使用burp不斷地抓包分析得出,
獲取圖片驗證碼地址:http://cc.ysI68.com/f_ht/sjzx/ys_vf_img.aspx?lx=1375778mm&sj=Fri%20Jul%2009%202021%2008:46:13%20GMT+0800%20(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)
提交人口地址:http://cc.ysI68.com/f_ht/ajcx/mlrz.aspx?cz=Kqmmpd&mlbh=1375778&kqmm=111111&yzm=000&_dlmc=cap88&_dlmm= (其中參數cz表示密碼登錄方式下載,mlbh目錄編號,kqmm目錄下載密碼,yzm驗證碼,_dlmc服務提供者用戶名,_dlmm服務提供者密碼)
成功或者失敗地特征:ture表示成功,0表示沒有輸入驗證碼,1=驗證碼不對,2和3=目錄密碼不對
注意這里有個小技巧,burp在抓取驗證碼數據包時默認會過濾掉,因為顯示出來沒有意義,這時我們要手動關閉過濾,
此時就可以在抓取歷史記錄中找到驗證碼數據包
3.獲取圖片驗證碼數據包發送到captcha-killer插件
在接口url中填入上如所示內容,api接口內容填寫
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填寫你注冊OCR時候的用戶名和密碼,其余不變。上面是圖鑒服務模板,其它服務不能套用。
匹配方式選擇 json,匹配規則是 result,此時配置識別插件就就完成了。
將提交人口數據包發送到intruder模塊中,只要將 kqmm=§111111§&yzm=§000§ 設置位攻擊點,攻擊模式選擇pitchfork,表示一對一設置字典。第一個位置選擇弱口令,第二個位置選擇由插件生成即可。執行后的匹配規則是,ture,0,1,2,3
最后一定要將線程數設置為1!
最后一定要將線程數設置為1!
最后一定要將線程數設置為1!
因為驗證碼獲取是線性的,如果是多線程,下一個線程獲取驗證碼后會讓前一個驗證碼失效。
點擊開始攻擊!!!
最后我的審計還是失敗了,為什么,我總結兩點
1.驗證碼識別有個准確率問題
2.字典制作也是一門學問,我只是到互聯網上隨便找的,字典內容雜七雜八,失敗也是必然的。