性能优化
CTF Web 挑战利用:当目标是 HTTP…
适用于以 Web 漏洞(XSS、SQLi、SSTI、SSRF、XXE、JWT、认证绕过、文件上传、请求走私、OAuth/OIDC、SAML、原型污染等)为主要攻击面的 CTF 挑战。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
CTF Web 挑战利用:当目标是 HT通用
解决思路
- 安装 Python 包:pip install sqlmap flask-unsign requests httpx
- 在 Linux 上安装:apt install hashcat jq curl
- 在 macOS 上安装:brew install hashcat jq curl
- 安装 Go 工具:go install github.com/ffuf/ffuf/v2@latest
- 手动安装 ysoserial(需要 Java,用于 Java 反序列化 payload):从 GitHub 获取 https://github.com/frohoff/ysoserial
- 克隆 PayloadsAllTheThings 到 ctf-web/payloads/PayloadsAllTheThings:bash scripts/install_ctf_tools.sh pat(仅 PAT)或 bash scripts/install_ctf_tools.sh all(所有工具含 PAT)
- 手动回退克隆 PAT:git clone --depth 1 https://github.com/swisskyrepo/PayloadsAllTheThings.git ctf-web/payloads/PayloadsAllTheThings
- PAT 可选且按需:加载时不需要;没有它时使用 pat-reference.md 的离线索引和示例 payload 优雅降级;批量 wordlist 需要上述克隆。
- 识别真实边界:仅浏览器、仅后端、混合应用或认证流程。
- 在模糊测试前,为每个主要功能捕获一个正常请求/响应对。
- 从 JS bundles、响应头、路由和替代方法枚举隐藏功能。
- 分类可能的漏洞族:注入、授权、解析器不一致、上传、信任代理、状态机或客户端执行。
- 先构建最小证明:泄漏、绕过或原语;完整利用链留到后面。
- 映射信任边界后,检查 pat-reference.md 找到与漏洞类匹配的 PAT 目录,然后搜索批量 payload:ls ctf-web/payloads/PayloadsAllTheThings 2>/dev/null | head;grep -R "onerror" "ctf-web/payloads/PayloadsAllTheThings/XSS Injection" 2>/dev/null | head
- 或通过 agent 工具搜索 PAT:Glob ctf-web/payloads/PayloadsAllTheThings/**/*.md;Grep "union select" ctf-web/payloads/PayloadsAllTheThings
- 如果 ctf-web/payloads/PayloadsAllTheThings/.git 缺失,懒克隆:[ -d "ctf-web/payloads/PayloadsAllTheThings/.git" ] || git clone --depth 1 https://github.com/swisskyrepo/PayloadsAllTheThings.git ctf-web/payloads/PayloadsAllTheThings
- Recon:curl -sI https://target.com;ffuf -u https://target.com/FUZZ -w wordlist.txt;curl -s https://target.com/robots.txt
- SQLi 快速测试:sqlmap -u "https://target.com/page?id=1" --batch --dbs
- JWT 解码(不验证):echo '<token>' | cut -d. -f2 | base64 -d 2>/dev/null | jq .
- Cookie 解码(Flask):flask-unsign --decode --cookie '<cookie>';flask-unsign --unsign --cookie '<cookie>' --wordlist rockyou.txt
- SSTI 探测:curl "https://target.com/page?name={{7*7}}";curl "https://target.com/page?name={{config}}"
- 请求检查:curl -v -X POST https://target.com/api -H "Content-Type: application/json" -d '{}'
- 回答首要问题:flag 可能在浏览器、API 响应、本地文件、数据库行或内部服务?
- 回答首要问题:应用是否信任用户控制数据在模板、重定向、文件路径、头、序列化对象或后台任务中?
- 回答首要问题:是否存在多个解析器不一致:代理 vs 应用、URL 解析器 vs 获取器、sanitizer vs 浏览器、序列化器 vs 过滤器?
- 回答首要问题:能否先把 bug 转化为更小原语:读一个文件、伪造一个 token、调用一个内部端点、触发一次 bot 访问?
- 高价值侦察:在猜测 API 表面之前,阅读 HTML、内联脚本和打包 JS。
- 高价值侦察:比较 UI 提交内容与后端接受内容;可选 JSON 字段常解锁隐藏路径。
- 高价值侦察:早期检查元数据和辅助路径:/robots.txt、/sitemap.xml、/.well-known/、/admin、/debug、/.git/、/.env。
- 高价值侦察:在有趣路由尝试替代动词和内容类型:GET、POST、PUT、PATCH、TRACE、JSON、form、multipart、XML。
- 高价值侦察:将文件上传、PDF/导出、webhook、OAuth 回调、admin bot 功能视为可能的利用放大器。
- 快速模式映射:SQL 错误、异常过滤或状态依赖 DB 行为:从 sql-injection.md 开始。
- 快速模式映射:模板、文件读、SSRF、命令执行、XML 或解析器 bug:从 server-side.md 和 server-side-exec.md 开始。
- 快速模式映射:XSS、CSP bypass、admin bot、客户端路由、DOM 问题或无脚本外泄:从 client-side.md 开始。
- 快速模式映射:会话伪造、隐藏 admin 路由、JWT、OAuth、SAML 或弱信任边界:从 auth-and-access.md、auth-jwt.md 和 auth-infra.md 开始。
- 快速模式映射:Node.js 应用、原型污染、VM 沙箱或 SSRF 到内部服务:添加 node-and-prototype.md。
- 快速模式映射:智能合约前端或区块链集成应用:添加 web3.md。
- 按需查阅 Additional Resources 中的详细笔记文件:sql-injection.md、server-side.md、server-side-2.md、server-side-exec.md、server-side-exec-2.md、server-side-deser.md、server-side-advanced.md、server-side-advanced-2.md、server-side-advanced-3.md、server-side-advanced-4.md、client-side.md、client-side-advanced.md、auth-and-access.md、auth-and-access-2.md、auth-jwt.md、auth-infra.md、node-and-prototype.md、web3.md、cves.md、field-notes.md、python-requests.md、pat-reference.md。
- 尝试常见利用链:Recon -> hidden route -> auth bypass -> internal file read -> token 或 flag。
- 尝试常见利用链:XSS 或 HTML injection -> admin bot -> privileged action -> secret leak。
- 尝试常见利用链:Traversal 或 upload -> config/source leak -> secret recovery -> session forgery。
- 尝试常见利用链:SSRF -> metadata 或 internal API -> credential leak -> code execution。
- 尝试常见利用链:SQLi 或 NoSQL injection -> credential bypass -> second-stage template 或 upload abuse。
- 确认挑战确实是 web-heavy 后,使用 field-notes.md 查阅长利用目录。
- 深潜笔记覆盖:Recon、SQLi、XSS、traversal、JWT、SSTI、SSRF、XXE、command injection 快速笔记。
- 深潜笔记覆盖:反序列化、竞态条件、文件上传到 RCE、多阶段链示例。
- 深潜笔记覆盖:Node、OAuth/SAML、CI/CD、Web3、bot abuse、CSP bypass、现代浏览器技巧。
- 深潜笔记覆盖:CVE 形态 playbook 和较旧但仍出现在现代 CTF 的挑战模式。
- 检查常见 flag 位置:文件:/flag.txt、/flag、/app/flag.txt、/home/*/flag*。
- 检查常见 flag 位置:环境:/proc/self/environ、进程命令行、调试配置转储。
- 检查常见 flag 位置:数据库:名为 flag、flags、secret 的表或预置挑战内容。
- 检查常见 flag 位置:HTTP:自定义头、归档响应、隐藏路由、admin 导出。
- 检查常见 flag 位置:浏览器:隐藏 DOM 节点、data-* 属性、内联状态对象、source maps。
适用边界 · 注意事项
- 不适用于原生二进制内存破坏、独立可执行文件逆向、磁盘或内存取证、纯密码分析,除非 web 漏洞仍是获取 flag 的主要路径。
- 如果目标是 native binary、custom VM 或 firmware image,应切换到 /ctf-reverse;如果 HTTP 漏洞只给代码执行而难点是内存破坏或 seccomp 逃逸,应切换到 /ctf-pwn。
- 如果 web 挑战的关键是 JWT 数学、自定义 MAC、密码原语,或涉及日志/PCAP/取证、公开情报/DNS/社交媒体,应分别切换到 /ctf-crypto、/ctf-forensics、/ctf-osint。