跳转至

暴力破解 存在验证码

本文主要介绍如何在有验证码的情况下进行暴力破解(登陆等请求)

burp插件

项目地址:https://github.com/f0ng/captcha-killer-modified

需要配合jar包和codereg.py(服务端)一起使用

image-20250414211940825

下载jar包后,导入burp

配置服务端

Bash
# install ddddocr(一个识别验证码的库),aiohttp(异步处理相关的库)
pip install ddddocr aiohttp
# or use
conda install ddddocr aiohttp
Bash
python codereg.py -p 8888
# -p指定监听端口

image-20250414212844130

暴力破解

image-20250414213408360

首先获取目标验证码接口

image-20250414213645052

右键请求发送到插件,随后点击获取,可以看到获取到了验证码图片

Note

如果返回的是base64编码等,需要配置关键字来识别哪一部分是图片,响应提取适用于response有判断验证码是否过期的字段,将该字段提取后可以用于intruder模块进行爆破

image-20250414214008673

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

image-20250414214157557

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

image-20250414214542201

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

image-20250414215255222

可以看到每次都是不同的验证码,但似乎识别准度还不够

参考文章:Burpsuite验证码识别插件 “captcha-killer-modified“ 使用教程(详细)-CSDN博客

使用宏(macros)

前提条件为:明文验证码直接在响应中返回

注意点

image-20260623171021029

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

image-20260623171055887

必须要上述表单格式参数才可以

分析流程

image-20260623171156597

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

image-20260623171305075

所以请求顺序如下:

  1. 请求接口/api/get_captcha获取captcha和token
  2. 将第一步获取的captcha和token值放到captcha_code和token

操作步骤

制作宏

image-20260623171738963

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

image-20260623171823742

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

image-20260623171907786

image-20260623171936901

点击Configure Item,点击下方的add

image-20260623172035371

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

image-20260623172157062

同样的,添加token后保存

添加处理规则

image-20260623172239181

image-20260623172333399

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

image-20260623172432435

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

image-20260623172520482

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

实际效果

  • 爆破

image-20260623172759321

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

image-20260623172936698

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

image-20260623173046291

完成了爆破