暴力破解 存在验证码
本文主要介绍如何在有验证码的情况下进行暴力破解(登陆等请求)
burp插件¶
项目地址:https://github.com/f0ng/captcha-killer-modified
需要配合jar包和codereg.py(服务端)一起使用

下载jar包后,导入burp
配置服务端¶
# install ddddocr(一个识别验证码的库),aiohttp(异步处理相关的库)
pip install ddddocr aiohttp
# or use
conda install ddddocr aiohttp

暴力破解¶

首先获取目标验证码接口

右键请求发送到插件,随后点击获取,可以看到获取到了验证码图片
Note
如果返回的是base64编码等,需要配置关键字来识别哪一部分是图片,响应提取适用于response有判断验证码是否过期的字段,将该字段提取后可以用于intruder模块进行爆破

将接口地址配置为服务端监听的地址,同时选择对应的模版

点击识别后可以看到验证码已经被正确识别,此处需要将是否使用该插件勾选上

抓取一个登陆请求做爆破测试,payload type选择插件生成

可以看到每次都是不同的验证码,但似乎识别准度还不够
参考文章:Burpsuite验证码识别插件 “captcha-killer-modified“ 使用教程(详细)-CSDN博客
使用宏(macros)¶
前提条件为:明文验证码直接在响应中返回
注意点¶

这种JSON格式的参数是无法识别到的

必须要上述表单格式参数才可以
分析流程¶

首先登录需要携带captcha_code和token参数,这两个参数需要通过获取验证码的接口获取

所以请求顺序如下:
- 请求接口/api/get_captcha获取captcha和token
- 将第一步获取的captcha和token值放到captcha_code和token
操作步骤¶
制作宏¶

点击Proxy settings-Sessions-Macros处点击add

选择我们要提取响应数据的请求,点击OK


点击Configure Item,点击下方的add

参数名必须与登录请求一致,为captcha_code,勾选对应的值,bp会自动识别并提取

同样的,添加token后保存
添加处理规则¶


添加一个宏,选择刚才的宏

选择仅更新特定参数,指定参数名

选择合适的试用范围和URL,一般而言,如果只想爆破,只需要勾选Intruder即可
实际效果¶
- 爆破

只需要对用户名和密码进行爆破,验证码和token会自动更新

由于请求有先后顺序,线程必须设置为1

完成了爆破