/web-recon — Web 信息收集
scope: 已发现 HTTP/HTTPS 后,交付技术栈、路径/API、前端线索、代理/缓存边界、已知 CVE 候选。不手工挖 SQLi、不 exploit、不拿 shell。直连数据库端口 →
/recon。▸ 候选交操作者选/web-attack。
CVE 统一 ../shared/cve-enrichment.md。CMS → references/cms-cheatsheet.md。深挖:references/api-discovery.md / references/frontend-recon.md / references/http-topology.md / references/vulnerability-intelligence.md。
开局与收尾
开局第一件事:Read ./notes.md。没有则 python ~/.claude/skills/bin/notes.py init。只按已拿下/凭据继续。
走到哪条链,才 Read 一份 references/<file>.md。禁止开局全读、禁止凭记忆写 payload。
监听 / sudo / 输密码 / Permission denied:立刻停,说明等操作者做什么,等回报。不要假装已成功。
收尾:
- 追加
./notes.md python ~/.claude/skills/bin/modules.py tail <本模块名>Read 备用:~/.claude/skills/shared/modules.yaml禁止./modules.yaml和python ../bin/...- 优先
default_next;never_default不得当作默认(操作者点名除外) - 名册外的名字不许建议
- 停。等操作者选
/模块或/clear/edr-bypass半条链未完:打通后回本模块,不要 /clear。
0. 成功条件
技术栈 + WAF 厂商
路径 / API / 方法矩阵
JS / sourcemap / 历史端点
代理/CDN/缓存边界
CVE 候选(版本门 + PoC 有无),不是「已利用」
禁止: RCE、写文件、爆破登录、改配置、把 Nuclei MATCH 写成已拿下。
1. 决策树
先指纹(whatweb / 头 / WAF)
↓
按栈选字典和扩展名(禁止全局 -e .php)
↓
路径 / 参数 / vhost / API / JS
↓
有精确产品版本 → ../shared/cve-enrichment.md
↓
卡片交给操作者 → 可选 /web-attack
IIS → aspx/ashx/config;Tomcat → jsp/war;PHP → php/phtml;未知先无扩展再补。
2. 指纹
whatweb http://TARGET
curl -sI http://TARGET
wafw00f http://TARGET
记 Server / 语言 / CMS / WAF。WAF 只记厂商,绕过在 /web-attack。
3. 发现(细节在 reference,SKILL 不堆四种工具全书)
路径:ffuf 首选。字典见 ../shared/wordlists.md。
# 扩展名跟指纹,不要复制 .php 当全世界
ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
-u http://TARGET/FUZZ -mc 200,301,302,403
递归 → feroxbuster。参数 → arjun。vhost → Host: FUZZ。完整命令习惯仍可用 ffuf/ferox/gobuster,选一种做完,不要四种全跑。
API / Swagger / Kiterunner / GraphQL → references/api-discovery.md。401/403/405 保留给 attack。
JS / sourcemap / wayback → references/frontend-recon.md。
.git / .env / web.config 泄露:下载后把密钥 写进卡片,recon 不连生产库、不登录。操作者再选 /web-attack 或 /creds(当独立凭据作业)。
CMS 识别后 → references/cms-cheatsheet.md(只扫,不打)。
4. HTTP 拓扑
进 desync/cache 之前记 CDN/WAF/反代/HTTP 版本 → references/http-topology.md。
curl -skI --http1.1 https://TARGET/
curl -skI --http2 https://TARGET/
5. CVE 候选
精确版本后 → references/vulnerability-intelligence.md + ../shared/cve-enrichment.md。
nuclei -u http://TARGET -as -severity critical,high
vulnx search '<product> && is_poc:true' --limit 20
Nuclei/PoC 验证版本与 matcher,利用由操作者选 /web-attack。Fastjson 等具体 CVE 的 PoC 条件写在 vulnerability-intelligence,不要在 SKILL 贴整段 exploit。
6. 输出
[WEB-RECON] TARGET
stack / WAF:
paths / API:
cve candidates: ID + gate + PoC yes/no
next: waiting operator(候选只认 ~/.claude/skills/shared/modules.yaml)