用途
js-reverse-automation 是一个 JS 逆向自动化 Skill,用于在获得授权的站点中分析浏览器侧的 sign / enc / token / 表单字段。它通过 chrome-devtools-mcp 连接真实浏览器,复现通向目标参数的请求链路,定位参数在发包前如何被引入、修改或加密,并据此生成可复用的注入与代理代码。
该 Skill 明确声明:只生成对应的代码,不会对未授权目标进行测试。使用前需具备授权渗透测试声明,包含授权目的、范围(Target URL)、时间区间与联系人信息。
触发条件
当用户需要在授权的站点中分析浏览器侧的 sign / enc / token / 表单字段时,使用此 Skill。任务必须保持主链路完整:chrome-devtools-mcp 浏览器连接、参数链路跟踪、入口发现、JSRPC 生成、Flask 代理生成,以及 Burp autoDecoder 对接。
必要输入
需按以下格式提供输入:
- Target URL: https://xxx/login/index
- Parameters To Analyze: password
- Environment Constraints: none
- Optional Fetch Example: fetch("https://xxx/Login/CheckLogin", {...})
最少必填字段为 Target URL、Parameters To Analyze、Environment Constraints;Optional Fetch Example 为可选但强烈建议提供。在进行任何浏览器操作前,先运行 scripts/check_inputs.py。详细的输入输出契约见 references/output-contract.md。
目录结构
- README.md:项目说明、使用方式、更新说明和结构说明。
- SKILL.md:Skill 主控文件,定义任务如何被触发、必须输入什么、流程如何分阶段、输出和验收如何要求。
- agents/openai.yaml:Skill 的 agent 入口配置,定义默认提示词、默认输入格式和执行约束。
- artifacts/:运行期目录,承接流程中间产物和最终校验报告,预期文件包括 phase0_input.json、phase1_trace.json、phase2_entrypoints.json、phase3_dependencies.json、validation_report.json。
- references/:包含 workflow-recon.md(阶段流程说明)、output-contract.md(输入输出契约)、failure-recovery.md(失败恢复和诊断格式)、validation-checklist.md(验收标准),以及 antidebug/ 下的 debugger-loop.md、console-detect.md、timer-check.md、env-detect.md、proxy-guard.md、dynamic-alias.md。
- scripts/:包含 check_inputs.py(输入校验器)、emit_analysis_result.py(统一分析产物生成器)、emit_jsrpc_stub.py(JSRPC 代码生成器)、emit_flask_proxy.py(Flask 代理生成器)、emit_burp_doc.py(Burp autoDecoder 文档生成器)、validate_artifacts.py(全链路校验器)。
阶段流程
- Phase 0 输入校验与规范化:校验必填字段,写出后续阶段使用的规范化请求 JSON。
- Phase 1 浏览器连接与请求复现:通过 chrome-devtools-mcp 连接真实浏览器,打开目标页面,复现通向目标参数的请求链路。
- Phase 2 参数入口发现:定位目标参数在发包前如何被引入、修改或加密。
- Phase 3 调用路径与依赖提取:提取可调用的入口函数、this 绑定、运行时前置条件,以及在 UI 之外调用该函数所需的依赖链。
- Phase 4 生成 analysis_result.json:将 Phase 0-3 的发现整理为统一的中间产物。
- Phase 5 生成 JSRPC 注入代码:根据 analysis_result.json 生成浏览器侧注册代码,要求可直接手工测试,类似 /go?group=fausto&action=generate_password¶m=111111 直接返回加密后字符串的版本。
- Phase 6 生成 Flask 代理代码:生成本地代理,将数据转发给 JSRPC,并返回兼容 Burp 的输出。
- Phase 7 生成 Burp 对接文档:基于同一份分析产物生成 autoDecoder 对接说明文档。
- Phase 8 校验与诊断:运行 scripts/validate_artifacts.py,生成包含通过/失败明细与修复建议的校验报告。
各阶段的成功条件、失败处理和是否继续规则,见 references/workflow-recon.md。
产出要求
工作流成功时,此 Skill 必须产出:analysis_result.json、JSRPC 注入代码、Flask 代理代码、Burp autoDecoder 对接文档、校验报告,以及 JSRPC 注入代码有效性测试的链接(如 http://127.0.0.1:12080/go?group=fausto&action=generate_password_md5¶m=111111)和 Flask 代理代码(如 curl -X POST http://127.0.0.1:5000/encode -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "dataBody=username=111111&password=111111&code=1234&role=000002")。所有生成器都必须以 analysis_result.json 作为输入,各输出文件要求和 schema 细节见 references/output-contract.md。
失败处理原则
对缺失输入或无法复现的请求链路尽早失败;不要把猜测出来的入口函数作为最终输出;记录包含 phase id、evidence、impact 和 next action 的诊断信息;如果怀疑存在反调试,引用 references/antidebug/ 下的精确规则文件并记录风险;如果 JSRPC、Flask 或 Burp 产物无法通过校验,保留已生成文件,但将校验报告标记为失败。更详细的恢复规则见 references/failure-recovery.md。
验收要求
只有满足以下条件,此 Skill 才算完成:analysis_result.json 通过契约校验;JSRPC 代码引用了可解析的运行时入口,并暴露了配置好的 action;Flask 代理可以成功编译,且请求改写逻辑与目标参数列表一致;Burp 文档包含端点、HTTP 方法、必需表单字段以及验证步骤;校验报告中包含通过/失败结果和明确的诊断信息。最终验收以 references/validation-checklist.md 为准。
适用场景与限制
适用场景为获得授权的安全测试中,对浏览器侧 sign / enc / token / 表单字段的生成链路分析与代码生成。限制包括:仅生成代码,不对未授权目标进行测试;需要提供授权声明与必要输入;无法复现的请求链路会尽早失败;反调试场景需引用对应规则文件并记录风险。