reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
# 授权侦察流水线(Bug Bounty / 渗透)
> 来源启发:社区 bug bounty recon 管线(subfinder→httpx→katana→nuclei→ffuf 等)、claude-bug-bounty 类 /recon 流程
> 日期:2026-07-17(P0 ops:CF 浏览器头 / Windows nmap / Evidence append)
> **MUST** 先满足 `ops/scope-contract.md`;禁止「只给一个域名就全网狂扫」
## 0. 门闩
```text
□ auth.status = granted(SRC/BB in-scope / 书面授权)
□ in_scope.assets 非空(域名/IP/URL 列表)
□ network_profile = authorized_target_only | lab_only
□ out_of_scope 已读(禁止 DoS、禁止超范围)
```
Ready case in one shot:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File skills\scripts\case-init.ps1 `
-Hint "web pentest app.example" -CaseName "demo-case" `
-AuthGranted -TargetUrl "https://app.example/" -NetworkProfile authorized_target_only
# ACT 前轻量门禁(未就绪 exit 2)
powershell -File skills\scripts\case-guard.ps1 -CaseRoot work\demo-case
```
## 0.1 Cloudflare / CDN 边缘:浏览器客户端头(MUST 先试)
很多 SaaS 在 **裸 curl / 数据中心 UA** 上返回 WAF `403 access-policy`(例如 `ap3`),但带浏览器 Origin/Referer 后 API 正常。
**默认先用可复制模板**(再谈目录爆破/nuclei):
```bash
# Headers only
curl -sS -D - -o NUL --max-time 15 \
-A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" \
-H "Accept: application/json, text/plain, */*" \
-H "Origin: https://app.example" \
-H "Referer: https://app.example/" \
"https://api.example/v1/health"
# Same-site style API call
curl -sS --max-time 15 \
-A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" \
-H "Accept: application/json" \
-H "Origin: https://app.example" \
-H "Referer: https://app.example/" \
-H "Sec-Fetch-Site: same-site" \
-H "Sec-Fetch-Mode: cors" \
-H "Sec-Fetch-Dest: empty" \
"https://api.example/app/v1/clock"
```
```text
□ 裸 curl 403 + JSON access-policy / CF-RAY → 换浏览器 UA + Origin/Referer 重试
□ 仍 403 且 HTML 含 Cf-Mitigated: challenge → 需要真实浏览器 / 登录会话,不要盲扫打爆
□ SPA 任意路径 200 + 相同 body 大小 → 多为前端路由,不是真实 API 命中
```
## 0.2 Windows curl:`[]` 被当成范围(原型污染 URL)
```text
curl: (3) bad range in position N: ... __proto__[test]=...
```
**MUST** 使用 `--globoff`,或 `--data-urlencode`:
```bash
curl.exe --globoff -sS "https://target/?__proto__%5Btest%5D=polluted"
curl.exe --globoff -sS -G "https://target/path" --data-urlencode "__proto__[test]=polluted"
```
客户端 / DOM 面进一步见 `client-side-lab-playbook.md`。
## 0.3 Windows nmap 坑(本机)
在部分 Windows 环境,默认 Nmap 可能报:
```text
dnet: Failed to open device eth0
QUITTING!
```
**处理:**
```text
□ 优先 TCP connect 扫描:nmap -sT -sV --top-ports 50 -Pn -T3 target
□ 目标在 Cloudflare/CDN 后:应用层(HTTPS/API/JS)优先,全端口 raw 扫描收益低
□ 仍失败:记录为环境限制,继续 http/curl 侦察,不要卡死在 nmap
```
## 1. 推荐阶段(可裁剪)
| 阶段 | 典型工具 | 产出 |
|------|----------|------|
| 1 被动子域 | subfinder / amass / crt | domains.txt |
| 2 存活 | httpx(注意:Windows 上 `httpx` 可能是 Python 库 CLI,不是 projectdiscovery) | live.txt + tech |
| 3 URL/爬虫 | katana / gau / wayback(按授权) | urls.txt |
| 4 指纹/模板 | nuclei -severity critical,high | candidates |
| 5 目录/参数 | ffuf / arjun | 隐藏面 |
| 6 验证 | 手工 / sqlmap / 专用 PoC | **E-*** 证据 |
| 7 报告 | docs-generator | F/P 链 |
工具未在 bootstrap-manifest 中的:**文档安装或 Kali 预装**,禁止假装可 bootstrap。
## 2. Evidence 门(降误报 — 本包特色)
```text
nuclei/ffuf 命中 ≠ Finding validated
□ 每条候选:复现命令 + 响应摘录(脱敏)→ E-id
□ 仅 validated 进报告 High+
□ timeline 每阶段至少 1 条
```
### 2.1 追加 Evidence(固定结构,禁止自创目录)
契约字段见 `skills/ops/evidence-finding-path.md`。
一键写入 case 目录:
```powershell
# Prefer -RawExcerptFile when excerpt has quotes/spaces (nested powershell -File splits multi-word values)
Set-Content work\demo-case\excerpt.txt -Value '{"clock":"...","status":true}' -Encoding utf8
powershell -NoProfile -ExecutionPolicy Bypass -File skills\scripts\append-evidence.ps1 `
-CaseRoot "work\demo-case" `
-Id "E-001" `
-Title "Public clock API returns 200" `
-ReproCommand 'curl -s "https://api.example/app/v1/clock" -A "Mozilla/5.0" -H "Origin: https://app.example" -H "Referer: https://app.example/"' `
-Severity info `
-Status observed `
-RawExcerptFile "work\demo-case\excerpt.txt" `
-Location "https://api.example/app/v1/clock"
```
产物:
- `work/<case>/evidence/E-001.md`(含 title / repro_command / raw_excerpt / status)
- `work/<case>/evidence/INDEX.md` 索引行
社区「7-question gate / 检测与验证分离」思路:与我们的 Evidence→Finding 一致。
## 3. 与 src-hunter / api-security
深度漏洞类型 playbook → `pentest-tools/src-hunter/`。
本流水线解决 **怎么从资产到候选**;playbook 解决 **怎么验某一类洞**。
Web SaaS 未登录面 → 本流水线;拿到 token/会话后的 BOLA/IDOR → 可交接 `api-security/`。
## 4. 明确禁止
```text
□ 无 scope 的 masscan 全网段
□ 对 out_of_scope 子公司/第三方自动扩展
□ 把 scanner 输出直接当已确认漏洞写 HackerOne
□ 在 Cloudflare challenge 上硬刚爆破打崩边缘
```