| name | pentest |
| description | 实战黑盒 Web 渗透测试 / SRC / Bug bounty 工作流 skill。5 阶段 checkpoint 工作流(intake → recon → enum → hunt → report)+ 19 类攻击 playbook + 48 个可执行 Python 脚本(自动扫描/验证/报告)+ 305 payload + 263 WAF 绕过 + 2887 份 H1 真实案例 + 国产组件字典 + 银行/电信行业 playbook。
触发词:渗透测试、安全扫描、漏洞挖掘、bug bounty、SRC、hackerone、漏洞赏金、众测、任意X漏洞、WAF绕过、pentest
|
| argument-hint | <target-or-program-or-phase> |
| level | 2 |
Pentest Skill — 实战漏洞挖掘工作流
这是一个带强制 checkpoint 的工作流,不是参考手册。每个阶段有 MUST 输出,未通过不进下一阶段。详细 payload / playbook / H1 案例按需 Read,不准凭记忆生成。
数据规模、目录树见 README.md,本文件只管"做什么 / 何时做 / 何时去读哪个文件"。
触发条件
命中任一即进入:
- "src 挖洞 / 漏洞赏金 / bug bounty / 众测 / hackerone / Security Response Center"
- "如何挖 / 怎么测 / 怎么打 + 某目标 / 某接口 / 某参数"
- "WAF 绕过 / 任意账号 / 任意修改 / 密码重置 / 未授权访问 / 默认凭据"
- "渗透测试 / pentest / 安全扫描 / 漏洞验证"
- 用户给一个 URL / API endpoint / APK 让你测
不应触发:纯白盒源码审计;漏洞修复问答;CTF。
反幻觉硬约束(全程适用)
- 不准凭记忆出 payload。要给任何 payload 前,先 Read 对应
references/playbooks/<type>.md(或 <type>/00-index.md + 具体子文件)。payload 必须能在文件里查到出处。
- 不准编造案例编号。引用 H1 案例前必须 Read
references/h1-reports/by-weakness/ 下的实际文件。说不出文件路径就别引。
- 无证据不下结论。无 HTTP 包/截图时只能写"待验证",不写"已确认 / 发现漏洞"。
- 出 scope 立即停。资产不在 Phase 1 已确认的 in-scope → 立即停手,回 Phase 1 重核。
- 差分证明。盲注要真/假/baseline 三包;IDOR 要自己200+他人200+不存在404。
- 合规红线。SQLi 探到库名即停;IDOR 取1-3条样本;RCE 只跑 id/whoami;不真发短信/扣款。详见
references/compliance.md。
Phase 1 · Intake(接单)
进入条件:用户首次给出目标 / 程序名 / URL。
MUST 输出 checkpoint(四项缺一不进 Phase 2):
确认后写入 config.yaml 的 target.scope。越界急停:任何 Phase 中发现资产不在 in_scope → 立即停。
仅当用户问"哪个最值得先测" → Read references/methodology/05-srctimebox-priority.md。
Phase 2 · Recon(被动侦察)
进入条件:Phase 1 checkpoint 四项全过。禁止主动发包。
MUST 输出:不发包得到的资产清单 + 历史信息,来源 ≥3 种(CT日志/Wayback/GitHub dorks/FOFA/Shodan/SecurityTrails/ASN)。
Phase 3 · Enum(主动探测)
进入条件:Phase 2 资产清单非空。
MUST 输出:活资产矩阵——域 → 端口 → 服务 → 指纹 → JS endpoint。
自动化工具(按需调用,非自动管道):
- 指纹/WAF:
python scripts/phase0_fingerprint.py --target URL --output-dir DIR
- 页面渲染/JS提取:
python scripts/phase4_render.py --target URL --output-dir DIR
- 目录枚举:
python scripts/phase5_dir_enum.py --target URL --output-dir DIR
- JS深度分析:
python scripts/phase6_js_analysis.py --target URL --output-dir DIR
- 工具状态:
python scripts/tool_manager.py status
条件触发 Read(命中就必读):
| 命中信号 | MUST Read |
|---|
指纹含 weaver/seeyon/tongda/landray/yongyou/kingdee/hikvision/dahua | references/dictionaries/chinese-srcfingerprints.md + default-credentials-cn.md |
| 资产含 银行/支付/网银 | references/industry/banking-finance.md |
| 资产含 运营商/BOSS/网管 | references/industry/telecom-isp.md |
Phase 4 · Hunt(漏洞探测)
进入条件:Phase 3 矩阵 ≥1 个候选目标。
强制流程(每个候选目标走一遍):
- 看目标信号,从下表选 playbook
- Read 该 playbook(不准跳过、不准凭记忆替代)
- 按 playbook 的参数频率表挑入口
- 按 playbook 的 payload 库探测——payload 来自文件,不来自记忆
- 被 WAF 拦 → Read
references/methodology/02-bypass-toolkit.md
- 命中后保存 HTTP 包 → 进 Phase 5
| 入口信号 | MUST Read | 自动化脚本(按需) |
|---|
| Actuator/Swagger/弱密码 | playbooks/unauth-access.md | — |
| .git/.svn/.env/heapdump | playbooks/info-disclosure.md | — |
| ID 可遍历/任意X越权 | playbooks/arbitrary-x-authz.md | phase7b_auth_vuln.py |
| 密码重置/支付/验证码 | playbooks/logic-flaws/00-index.md | phase7n_logic_vuln.py |
| OAuth/SAML/JWT | playbooks/oauth-saml-jwt/00-index.md | phase7o_jwt_vuln.py |
| REST API/BOLA/Mass Assignment | playbooks/api-rest/00-index.md | phase7b_auth_vuln.py |
| 用户输入进 DB | playbooks/sqli.md | phase7d_sqli_verify.py |
| 反序列化/SSTI/XXE/框架RCE | playbooks/rce/00-index.md | phase7k_deser_vuln.py / phase7i_ssti_vuln.py / phase7j_xxe_vuln.py |
| URL入参/缓存/Host注入 | playbooks/ssrf-cache-host/00-index.md | phase7h_ssrf_vuln.py |
| 文件路径入参/LFI/RFI | playbooks/path-traversal/00-index.md | — |
| 上传点+解析漏洞 | playbooks/file-upload/00-index.md | phase7l_upload_vuln.py |
| 用户输入回显HTML/JS | playbooks/xss/00-index.md | phase7m_param_fuzz.py |
| 反代+CL/TE | playbooks/http-smuggling.md | phase7q_smuggling_vuln.py |
| GraphQL endpoint | playbooks/graphql.md | phase7p_graphql_vuln.py |
| 并发/TOCTOU | playbooks/race-conditions.md | — |
| ReDoS/资源不限速 | playbooks/dos.md | — |
| APK/IPA/移动端 | playbooks/mobile.md | — |
| LLM agent/prompt | playbooks/llm-prompt-injection/00-index.md | — |
| 已拿shell/内网 | playbooks/intranet-postexp/00-index.md | — |
| 命令注入 | (rce/ 子文件) | phase7g_cmdi_vuln.py |
| 框架漏洞(Log4j/Shiro/Fastjson) | (rce/ 子文件) | phase7f_framework_vuln.py |
| 参数Fuzz(XSS/SQLi/SSTI/SSRF) | (对应 playbook) | phase7m_param_fuzz.py |
| 403/401绕过 | (对应 playbook + methodology/02) | phase7r_bypass_vuln.py |
两步 Read 模式:目录形式 playbook 先 Read 00-index.md(路由表),再 Read 具体子文件。单文件直接 Read。
通用方法论(卡壳时 Read):
- 不知打什么 →
references/methodology/01-attack-priority.md
- 被 WAF 拦 →
references/methodology/02-bypass-toolkit.md
- 检查证据链 →
references/methodology/03-evidence-discipline.md
- 找不到漏洞点 →
references/methodology/04-control-gap-hunting.md
验证与证据(命中后):
- 自动验证:
python scripts/phase7a_auto_verify.py --output-dir DIR
- SQLi验证:
python scripts/phase7d_sqli_verify.py --target URL
- 证据汇总:
python scripts/phase7e_evidence.py --output-dir DIR
Phase 5 · Report(提交)
进入条件:Phase 4 至少一个 finding 有可重现 HTTP 包。
MUST 流程:
- Read
references/compliance.md 核对合规红线
- Read
references/templates/report-submission.md 取提交模板
- 自动报告:
python scripts/phase8_report.py --output-dir DIR
- 三段式输出: 标题(≤80字) + 重现步骤(带HTTP包) + 影响+修复(CVSS+业务影响)
脚本工具索引
48 个 Python 脚本,按需调用。非自动管道——你判断方向,需要时调脚本。
| 类别 | 脚本 | 用途 |
|---|
| 侦察 | phase0_fingerprint.py | 指纹/WAF/安全头 |
| 侦察 | phase4_render.py | Playwright渲染/JS提取 |
| 侦察 | phase4b_session.py | Session捕获 |
| 侦察 | phase5_dir_enum.py | 目录枚举(ffuf→fuzz_engine) |
| 侦察 | phase6_js_analysis.py | JS分析/端点验证 |
| 扫描 | phase7_vuln_scan.py | nuclei+VulnOrchestrator |
| 验证 | phase7a_auto_verify.py | 自动验证/误报排除 |
| 验证 | phase7b_auth_vuln.py | IDOR/越权/JWT |
| 验证 | phase7c_manual_verify.py | 手工验证辅助 |
| 验证 | phase7d_sqli_verify.py | SQLi验证(sqlmap) |
| 证据 | phase7e_evidence.py | 证据汇总(必须) |
| 专项 | phase7f_framework_vuln.py | 框架漏洞 |
| 专项 | phase7g_cmdi_vuln.py | 命令注入 |
| 专项 | phase7h_ssrf_vuln.py | SSRF |
| 专项 | phase7i_ssti_vuln.py | SSTI |
| 专项 | phase7j_xxe_vuln.py | XXE |
| 专项 | phase7k_deser_vuln.py | 反序列化 |
| 专项 | phase7l_upload_vuln.py | 文件上传 |
| 专项 | phase7m_param_fuzz.py | 参数Fuzz |
| 专项 | phase7n_logic_vuln.py | 业务逻辑 |
| 专项 | phase7o_jwt_vuln.py | JWT |
| 专项 | phase7p_graphql_vuln.py | GraphQL |
| 专项 | phase7q_smuggling_vuln.py | HTTP走私 |
| 专项 | phase7r_bypass_vuln.py | 403/401绕过 |
| 报告 | phase8_report.py | 最终报告(必须) |
| 工具 | tool_manager.py status | 工具状态检查 |
| 工具 | health_check.py | 环境检查 |
| 工具 | cli.py | 统一CLI入口 |
公共参数: --target --output-dir --config --verbose
降级: nuclei→Python, ffuf→fuzz_engine.py, subfinder→crt.sh, nmap→socket
MCP 工具集成
默认 mcp__jshook__search_tools + mcp__jshook__activate_tools 按需激活。完整索引 Read references/tools-src-hunter/mcp-jshook.md。