如何使用burp suite 来pj验证码
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.字典制作也是一门学问,我只是到互联网上随便找的,字典内容杂七杂八,失败也是必然的。