# 【juice-shop】★★★ CAPTCHA Bypass：绕过验证码批量提交反馈


# 【juice-shop】★★★ CAPTCHA Bypass：绕过验证码批量提交反馈

## 0x01 任务简报

<blockquote style="border-left: 5px solid #6f42c1; background-color: #f5f3ff; padding: 20px; margin: 1.5rem 0; color: #5521b5; line-height: 1.8; border-radius: 0 5px 5px 0;">
<div style="font-weight: bold; font-size: 1.1rem; margin-bottom: 10px; display: flex; align-items: center;">
<span style="margin-right: 8px;">💡</span> 提示 (Hints)
</div>
1. 绕过验证码后，编写脚本自动提交，或打开多个标签页快速提交。<br>
2. 可以准备 10 个浏览器标签页，逐个破解验证码并填写表单，在 20 秒内快速切换提交。<br>
3. 若要求改为 60 秒内提交 100 条以上，标签页切换策略将难以应对。<br>
4. 深入研究验证码机制的工作原理，尝试寻找绕过方法或自动化动态破解方案。<br>
5. 将操作封装成脚本，重复执行 10 次。
</blockquote>

---

## 0x02 实战：复现漏洞

### 🔍 第一步：抓包分析验证码机制

打开 Burp Suite，访问 `http://127.0.0.1:3000/#/contact`，分析请求包。

![反馈页面请求](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407173107.png)

访问用户反馈页面时，前端会向后端申请一个验证码，响应结构如下：

![验证码申请响应](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407174052.png)

猜测提交反馈时，请求包中包含 `captcha` 和 `captchaId` 两个字段，推测后端会将提交的 `captcha` 与存储的 `answer` 进行比对，相等则通过验证。

![提交请求包](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407174117.png)

### 💡 第二步：发现重放漏洞

但是！这里我做了一个尝试，将包发送到重放器顺手点了一下发送，发现返回201，有效……

> 这说明后端对已验证的请求包没有做重放防护，直接重放即可绕过验证码。

![Repeater 重放成功](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407174606.png)

### 💥 第三步：使用 Intruder 批量重放

将请求发送到 **Intruder**，配置 Null payloads：

- **Positions** — 点击 Clear §，不添加任何标记
- **Payloads** — Payload type 选择 **Null payloads**，设置发送次数为 **10**

![Intruder 配置](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407174847.png)

![Null payloads 设置](../../../../../../public/p/juice-shop-captcha-bypass绕过验证码批量提交反馈/assets/Pastedimage20260407174859.png)

### ✅ 第四步：完成挑战

点击 **Start Attack**，自动在 20 秒内完成 10 次提交，挑战完成。

---

## 参考资料

- [OWASP Juice Shop 官方攻略 - CAPTCHA Bypass](https://pwning.owasp-juice.shop/companion-guide/latest/appendix/solutions.html#_submit_10_or_more_customer_feedbacks_within_10_seconds)

