Individual skill
exploiting-prototype-pollution-in-javascript
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.
internal/tools/skills/data/web-application-security/exploiting-prototype-pollution-in-javascript/SKILL.md
Source commit d42f381ad34843e71a42658e5c57290c713e85af
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 7, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,313
- Repository last updated
- Nov 7, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- cybersecurity Repository topic
- security Repository topic
- bug-bounty Repository topic
- automation Repository topic
- autonomous-pentesting Repository topic
- ai-agent Repository topic
- ai-security Repository topic
- ethical-hacking Repository topic
- golang Repository topic
- penetration-testing Repository topic
- prototype-pollution Declared skill tag
- javascript Declared skill tag
- node-js Declared skill tag
- xss Declared skill tag
- rce Declared skill tag
- property-injection Declared skill tag
- dom-xss Declared skill tag
- server-side-pollution Declared skill tag
- security Derived category
- security-application Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
Read excerpt
# Exploiting Prototype Pollution in JavaScript
## When to Use
- 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
### How to CONFIRM a Hit (avoid false negatives)
- The positive signal is **a polluted property surviving on the prototype**, then a gadget firing. Client-side: after the payload, `({}).polluted` (or `Object.prototype.polluted`) returns your value in the console. Server-side: a property you injected changes server behaviour you can observe.
- Server-side confirmation without source: pollute a property the framework reflects — e.g. `{"__proto__":{"status":510}}` and watch for an HTTP **510** response, or `{"__proto__":{"json spaces":10}}` (Express) causing reformatted/whitespaced JSON, or a content-type/charset change. A normal 200 is NOT proof; require an attributable behaviour delta.
- Two-stage proof: (1) show pollution lands, (2) show a gadget consumes it (DOM-XSS sink, RCE via template/`child_process`, or auth flag like `isAdmin`). Pollution without a reached sink is still a finding but verify stage 1 first.
- Do NOT conclude negative until you have tried ALL of these vectors and contexts: