验证码绕过
验证码绕过
简介
🤩现在的网站大多都有验证码的存在,系统的安全性得到进一步保障。但攻防永远都是一个对抗的过程,此文章就谈一谈如何对验证码进行绕过。
工具
- burpsuite
- ddddocr
- captcha-killer
- python
dddocr
ddddocr 是一个由sml2h3开发的专为验证码厂商进行对自家新版本验证码难易强度进行验证的一个python库。
python<=3.9直接用命令 pip install ddddocr 进行安装(笔者测试支持m1,2022年11月24号)
项目地址:https://github.com/sml2h3/ddddocr
captcha-killer
captcha-killer是一个burpsuite的插件,captcha-killer本身无法识别验证码,它专注于对各种验证码识别接口的调用
项目地址:https://github.com/c0ny1/captcha-killer
这个插件安装需要注意,如果burpsuite的版本在2020版之前,可以到上面的项目地址进行下载,但如果burpsuite版本在2020版及之后,则到上述项目地址下载后无法使用,可到如下地址下载:
https://github.com/Ta0ing/captcha-killer-java8
使用方法
1.运行dddocr
dddocr是一个库,使用的话需要编写脚本利用识别,附上脚本(脚本来源*雷神众测)
1 | # encoding=utf-8 |
备注:自己使用过程中,由于使用了anconda ,会出现一下报错
1 | from jinja2 import escape |
经过排查原因是因为jinja2的版本太高了,需要降低版本,解决办法
1 | pip install jinja2==2.8 |
运行成功截图
这个脚本利用flask框架开启一个web服务,到时候captcha-killer插件会将验证码图片通过这个web服务传过来,然后脚本对验证码图片进行解析,将解析结果返回。
2.抓取验证码请求包发送到插件
3.将此数据包发送到插件captcha-killer 中
如果可以成功获取验证码说明成功
3.配置接口,发送请求调用dddocr
这里给出请求包格式(来源于*雷神众测)
1 | POST /api/upload HTTP/1.1 |
4.接口URL填写第一步开启脚本时使用的IP和端口
点击识别即可识别出验证码
5.到这一步说明已经配置完成啦,接下来就可以进行验证码绕过爆破,首先在登录接口输入账号密码验证码抓取请求包,发送到intruder模块,使用pitchfork攻击类型,设置密码和验证码为变量
6.然后在位置一设置为密码字典,位置二选择有效载荷类型为通过扩展生成,然后选择captcha-killer这个插件扩展
现在就可以开始爆破了
可以看到并不是验证码输入不正确,验证码绕过成功。