目录
基于Burp爆破验证码
一、验证码识别
二、爆破
1、访问登录请求并发送至intruder模块
2、访问验证码url并将截取的请求发送至captcha-killer模块
3、intruder模块设置
3、爆破结果
4、使用burp完成上述操作,存在以下问题:
基于Burp爆破验证码
一、验证码识别
Burpsuite验证码识别插件 “captcha-killer-modified“ 使用教程(详细)-CSDN博客
按照这个教程将服务搭建好之后就可以使用了,不过有几个需要注意的点
一定要在captcha-killer-modified-0.24.6目录下打开cmd窗口,并运行 codereg.py 程序,并且运行之后不能关,此时获取验证码之后才能正确识别
获取一次,识别一次
配置好可以正常识别验证码之后我们就可以开始尝试爆破
二、爆破
爆破需要注意的点:
-
获取验证码的SESSIONID和intruder的爆破时使用的SESSIONID必须要一样的
-
这个是为了避免发送登录请求和获取验证码的SESSIONID不一样,从而避免,出现vcode未定义这种错误
-
-
设置线程为一,确保每一次获取到的验证码准确匹配每一次的登录请求,避免出现验证码识别正确,但是没有对应到正确的登录请求,导致每一次都是 vericode-error
1、访问登录请求并发送至intruder模块
2、访问验证码url并将截取的请求发送至captcha-killer模块
选择模板时需要注意,可能改模板已经无法使用,需要更换新的模板,实在不行,就自己写python代码去吧
这个第二步一定要选上,确保intruder模块可以使用该插件,使得每一次可以读取不一样的验证码
3、intruder模块设置
-
位置参数中在需要的位置添加双字节符,并且选择pitchfork攻击类型
-
payload中设置需要爆破的payload
-
resource pool中设置线程数和爆破间隔
-
如果资源池没有就新建,有了就直接使用
-
3、爆破结果
-
vericode-error : 验证码识别错误
-
login-fail : 用户名密码错误
-
login-pass :登陆成功
4、使用burp完成上述操作,存在以下问题:
-
只能使用单线程,因为我们无法直接控制captcha-killer的多线程执行逻辑,这样也导致执行效率很低。我们可以使用Python代码开启多进程,进程与进程之间相互隔离的,与线程不同
-
captcha-killer偶尔还存在NullPointer异常情况,并不是特别稳定。使用python自行调用OCR接口
-
如果验证码识别出错,在真实的情况下,成千上万条的数据或验证码都会验证失败,中总不能在burp一直手动操作。我们可以使用python代码,将验证码出错的对应的用户名和密码保存在文件中,以供下次缩小范围爆破
-
真实场景下,也许根本不会存在爆破的机会,因为会有访问次数限制