一键导入
probejs-poc-generation
Generate minimal runnable PoCs from probejs findings, raw taint summaries, or vulnerability reports for JavaScript targets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate minimal runnable PoCs from probejs findings, raw taint summaries, or vulnerability reports for JavaScript targets.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | probejs-poc-generation |
| description | Generate minimal runnable PoCs from probejs findings, raw taint summaries, or vulnerability reports for JavaScript targets. |
Disclaimer: This skill is an experimental utility separate from probejs's core static analysis. It consumes
report.jsonoutput but relies on manual inspection and external LLM-based coding agents. Generated PoCs should always be manually validated.
Use this skill when a probejs report needs to be turned into a concrete, minimal PoC.
Produce:
At minimum, create README-PoC.md and one runnable artifact such as poc.js, poc.mjs, or http-request.txt.
Prefer a canonical probejs report.json finding emitted by --json, and treat finding.poc as the primary PoC-facing contract.
If the input is a raw probejs output instead, extract the required PoC fields inline as part of the workflow rather than relying on a separate normalization script.
When a probejs report already contains finding.poc, prefer it over local guesswork. Use finding.poc_guidance only as supporting detail when needed. The skill should spend effort on PoC generation and validation, not on re-deriving entrypoints that probejs already recovered.
See:
probejs/report.schema.json for the canonical probejs report contract, including finding.pocfinding.schema.json for the PoC-oriented field checklistexamples/finding.sample.json for a PoC-oriented sampleexamples/raw_probejs_summary.sample.json for a raw input sample that may require manual field extractionExtract or infer:
Record every inferred field as an assumption if the report does not state it directly.
Prefer the first working option:
require() or importDo not start an HTTP server if a direct library call reaches the same sink.
Keep only the code needed to hit the sink.
await, callbacks, or event waits as needed.If the finding has a long trace, derive the smallest triggering slice that still reaches the sink.
Choose a benign, observable post-condition.
os_command: unique stdout token or marker filepath_traversal: attacker-chosen file contents are returnedxss: payload string survives into response body or headerscode_exec: controlled code prints a unique tokennosql: auth bypass or widened query result is observableproto_pollution: polluted property appears on a fresh object or the intended targetint_prop_tampering: mutated internal property changes behavior or statePrefer stdout over filesystem side effects when both are possible.
Use the smallest matching template in templates/:
direct-call.cjs.templateesm-import.mjs.templatemodule-init.cjs.templateproto-poc.cjs.templatehttp-request.txt.templateREADME-PoC.template.mdOnly emit optional files that are actually used by the reproduction.
If execution is available, run the PoC and refine it until it either works or has a well-explained blocker.
When validation fails:
README-PoC.md with the real status.Never label a speculative PoC as validated.
echo PROBEJS_POC_SUCCESS over destructive commands.execFile or spawn, verify whether shell parsing is actually involved.eval, Function, vm, template compilation, and string timers.README-PoC.md must include: