Burp Suite 验证码 DOS 漏洞检测插件

工具介绍

Burp Suite 验证码 DOS 漏洞检测插件

利用验证码图片的隐藏尺寸参数进行资源耗尽型拒绝服务漏洞的自动化检测。

漏洞原理

许多 Web 应用在验证码接口中预留了 heightwidthsizemargin 等隐藏参数,用于适配不同终端的显示尺寸。开发者通常忽略了参数上限校验,攻击者传入超大值时,服务端会按参数值分配画布并生成对应尺寸的图片。例如 imagecreatetruecolor(10000, 10000) 单次请求即可消耗 400MB+ 内存,而正常验证码仅需 5KB。由于干扰线和噪点数量通常与画布面积成正比,CPU 负载也会随之飙升,仅需少量并发请求即可耗尽服务器资源,造成拒绝服务。该漏洞隐蔽性强、利用门槛低,且传统 WAF 难以识别,在自研图形接口中较为常见。

测试流程

  1. 点击图片验证码,在 Burp Suite 中抓包
  2. 右键请求 → 「发送到 CaptchaDos」
  3. 插件自动以累加步进方式递增参数值并发起测试
  4. 通过三维度(绝对时间 / 时间增量 / 长度增量)综合判断漏洞

步进逻辑

复制代码
初始值=50, 步进值=150, 最大值=1000
→ 50 → 200 → 350 → 500 → 650 → 800 → 950 → 1000
每个启用的参数独立测试,发现漏洞后自动跳过同参数剩余步进

快速开始

下载

Releases 页面下载最新版 CaptchaDos-1.0-jar-with-dependencies.jar

加载到 Burp Suite

  1. 打开 Burp Suite → ExtenderExtensions
  2. 点击 Add
  3. Extension Type 选择 Java
  4. 选择 CaptchaDos-1.0-jar-with-dependencies.jar
  5. 加载成功后可在 Burp Suite 顶部看到 「CaptchaDos」 标签页

从源码构建

bash 复制代码
# 需要 JDK 17+(仅编译需要,产出为 Java 8 bytecode)
git clone https://github.com/z50n6/CaptchaDos.git
cd CaptchaDos
mvn clean package -DskipTests
# 产出: target/CaptchaDos-1.0-jar-with-dependencies.jar

内置测试靶场

项目 test-target/ 目录包含一个存在验证码 DOS 漏洞的 PHP 站点,用于验证插件功能:

  1. test-target/ 部署到 PHP 环境(如 phpstudy)
  2. 访问 http://localhost/test-target/
  3. 抓取验证码请求(captcha.php),右键发送到 CaptchaDos
  4. 观察插件检测结果

测试账号:admin / admin123

工具下载

复制代码
https://github.com/z50n6/CaptchaDos/tree/main