js-reverse-automation--skill/SKILL.md
通过 chrome-devtools-mcp 连接真实浏览器,跟踪 sign/enc/token 的生成链路,识别运行时入口函数与依赖,生成 JSRPC 注入代码、Flask 代理代码和 Burp autoDecoder 对接文档。
npx skillsauth add fausto-404/js-reverse-automation--skill js-reverse-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本工具仅用于以下合法场景:
所有测试目标均为 CTF 比赛提供的靶场环境或已获得书面授权的系统。本工具不会用于任何未授权目标,不会进行违法操作。工具输出仅供安全研究和漏洞修复使用。
Target URL: https://xxx/login/index
Parameters To Analyze: password
Optional Fetch Example: fetch("https://xxx/Login/CheckLogin", {...})
先运行 scripts/check_inputs.py 校验。
运行 python3 scripts/check_inputs.py --input <raw> --output artifacts/phase0_input.json
navigate_page(initScript=...) 预注入 runtime probe,在页面任何 JS 执行前安装 Hookevaluate_script 补充注入python3 scripts/emit_runtime_hook_probe.py --output generated/runtime_hook_probe.js --params "目标参数名"initScript 或 evaluate_script 注入探针,重新触发目标动作evaluate_script("window.__JSRA_TRACE__.dump()") 拉取证据requests[].stack 识别加密入口调用栈evaluate_script 成功 → probe_status=okprobe_status=timeout,检查 console 有无 debugger 语句判断 timeout_reasonprobe_status=crashedprobe_status=partialok → 正常流程;partial → 继续但标记缺失证据;timeout/crashed → 降级到静态分析,记录 fallback_used=truesessionStoragefill_form 对复杂组件可能失败,优先用 evaluate_script 直接设值python3 scripts/detect_encryption.py --probe-artifacts artifacts/probe_dump.json --analysis analysis_result.json --output artifacts/encryption_candidates.jsonconfidence=highwindow.xxx),直接定位python3 scripts/emit_module_probe.py --output generated/module_probe.jsevaluate_script("window.__JSRA_MODULES__.dump()") 拉取结果__webpack_require__(window.__webpack_require__、chunk array 的 runtime 属性)webpackChunk* 的 runtime push 机会(hook push 方法,等下次 chunk 加载时捕获)require.c)confidence=low)global_path 或 manual_observed_onlyreferences/output-contract.md)entrypoint_discovery.strategy 必须如实反映发现路径confidence=high 需至少两类证据(网络 + 运行时)capability_boundary 所有不支持项必须为 falsestrategy=unsupported 时不生成 JSRPC actionruntime_health.probe_status 必须如实记录python3 scripts/emit_jsrpc_stub.py --analysis analysis_result.json --output generated/jsrpc_inject.jspython3 scripts/emit_flask_proxy.py --analysis analysis_result.json --output generated/flask_proxy.pypython3 scripts/manage_services.py --service jsrpc --analysis analysis_result.json --output artifacts/jsrpc_status.json --action start --forcepython3 scripts/manage_services.py --service flask --analysis analysis_result.json --flask-file generated/flask_proxy.py --output artifacts/flask_status.json --action start --forcenavigate_page(type=reload) 清理旧 WebSocket 连接,避免多客户端竞争typeof Hlclient === 'function',未加载则先注入 scripts/JsEnv_Dev.jsevaluate_script 读取 generated/jsrpc_inject.js 完整内容注入,禁止手写简化版curl http://127.0.0.1:12080/list 确认 group 已注册且只有 1 个 client&clientId=<最新注册的id>python3 scripts/emit_burp_doc.py --analysis analysis_result.json --output generated/burp-autodecoder.mdpython3 scripts/validate_artifacts.py --analysis analysis_result.json --jsrpc generated/jsrpc_inject.js --flask generated/flask_proxy.py --burp generated/burp-autodecoder.md --output artifacts/validation_report.jsonpython3 scripts/manage_services.py --service jsrpc --analysis analysis_result.json --output artifacts/jsrpc_status.json --action stop
python3 scripts/manage_services.py --service flask --analysis analysis_result.json --output artifacts/flask_status.json --action stop
遇到 debugger/console 检测时,参考 references/antidebug-patterns.md。先验证再 patch,最小 patch,记录 patch 前后差异。
analysis_result.jsongenerated/jsrpc_inject.js + generated/flask_proxy.py + generated/burp-autodecoder.mdartifacts/validation_report.jsoncurl 'http://127.0.0.1:12080/go?group=<group>&action=<action>¶m=<plaintext>'curl -X POST http://127.0.0.1:<port>/encode -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "dataBody=username=x&password=y&code=z&role=w"tools
通过 chrome-devtools-mcp 连接真实浏览器,跟踪 sign/enc/token 的生成链路,识别运行时入口函数与依赖,然后生成 JSRPC 注入代码、Flask 代理代码以及带校验输出的 Burp autoDecoder 对接文档,本skills只生成对应的代码,不会对未授权目标进行测试。
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------