Exploiting Prototype Pollution In Javascript
Overview
Cybersecurity skill for exploiting prototype pollution in javascript. Follows industry best practices and security standards.
When to Use
Trigger phrases:
"exploiting prototype pollution in javascript"
"Detect and exploit JavaScript prototype pollution vulnerabilities on both client"
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
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
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
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Reconnaissance — Gather information about the target related to prototype pollution in javascript. Identify attack surface.
- Vulnerability Identification — Enumerate potential prototype pollution in javascript weaknesses using automated and manual techniques.
- Exploit Development/Selection — Choose or develop exploits targeting identified prototype pollution in javascript vulnerabilities.
- Execution — Execute the prototype pollution in javascript test in a controlled manner with proper authorization.
- Post-Exploitation — Document the impact and extent of successful exploitation.
- Reporting — Write detailed findings with reproduction steps, impact assessment, and remediation guidance.
Tools
- Vulnerability Scanner — Automated weakness identification
- Exploitation Framework — Controlled exploitation testing
- Reporting Tool — Findings documentation and tracking
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
- All prototype pollution in javascript procedures executed completely and documented
- Findings validated against multiple data sources
- False positives identified and filtered
- Results documented with evidence and timestamps
- Recommendations provided with risk-based prioritization
Anti-Rationalization Table
| Rationalization | Reality |
|---|---|
| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |
| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |