Courses
1. Introduction to Blockchain and Solana
2. Setting Up Your Development Environment
3. Solana Architecture and Key Concepts
4. Creating and Managing Wallets
5. Understanding Solana Programs
6. Building Your First Solana Program
7. Deploying Programs on the Solana Network
8. Interacting with Solana Programs
9. Using Solana CLI and SDKs
10. Developing Decentralized Applications (DApps)
11. Smart Contract Security Best Practices
12. Testing and Debugging Solana Programs
13. Optimizing Performance on Solana
14. Exploring Solana Ecosystem Tools
1. Introduction to Blockchain and Ethereum
2. Setting Up Your Development Environment
3. Ethereum Architecture and Key Concepts
4. Creating and Managing Wallets
5. Understanding Smart Contracts
6. Building Your First Smart Contract
7. Deploying Smart Contracts on the Ethereum Network
8. Interacting with Smart Contracts
9. Using Ethereum CLI and SDKs
10. Developing Decentralized Applications (DApps)
11. Smart Contract Security Best Practices
12. Testing and Debugging Smart Contracts
13. Optimizing Performance on Ethereum
14. Exploring Ethereum Ecosystem Tools
1. Introduction to Blockchain and Polygon
2. Setting Up Your Development Environment
3. Polygon Architecture and Key Concepts
4. Creating and Managing Wallets
5. Understanding Smart Contracts on Polygon
6. Building Your First Smart Contract on Polygon
7. Deploying Smart Contracts on the Polygon Network
8. Interacting with Smart Contracts on Polygon
9. Using Polygon CLI and SDKs
10. Developing Decentralized Applications (DApps) on Polygon
11. Smart Contract Security Best Practices for Polygon
12. Testing and Debugging Smart Contracts on Polygon
13. Optimizing Performance on Polygon
14. Exploring Polygon Ecosystem Tools
1. Introduction to Cybersecurity
2. Report Writing for Penetration Testers
3. Information Gathering
4. Vulnerability Scanning
5. Introduction to Web Applications
6. Common Web Application Attacks
7. SQL Injection Attacks
8. Client-Side Attacks
9. Locating Public Exploits
10. Fixing Exploits
11. Antivirus Evasion
12. Password Attacks
13. Windows Privilege Escalation
14. Linux Privilege Escalation
15. Advanced Tunneling
16. The Metasploit Framework
17. Active Directory: Introduction and Enumeration
18. Attacking Active Directory Authentication
19. Lateral Movement in Active Directory
JavaScript Prototype Pollution
OSWE · Chapter 1
JavaScript Prototype Pollution
Prototype pollution is a JavaScript-specific vulnerability where an attacker injects properties into a base object prototype (like Object.prototype), so every object in the application unexpectedly inherits attacker-controlled properties. It can escalate to XSS, authentication bypass, or even remote code execution depending on how the polluted property is later used.
Key concepts
- Happens most often through unsafe recursive merge/clone/extend utilities that do not block the `__proto__`, `constructor`, or `prototype` keys.
- A polluted property can silently flip a security-relevant flag (e.g. `isAdmin`) across every object in the app, not just the one the attacker touched.
- Prevention: use `Object.create(null)` for maps of untrusted keys, or `new Map()`/`new Set()` instead of plain object literals.
- Node.js can also mitigate with the `--disable-proto=delete` flag as defense in depth, though `constructor.prototype` paths still need blocking separately.
Example
// Vulnerable recursive merge
function merge(target, source) {
for (const key in source) {
if (typeof source[key] === "object") merge(target[key] = target[key] || {}, source[key]);
else target[key] = source[key];
}
}
// merge({}, JSON.parse('{"__proto__":{"isAdmin":true}}'))Try it yourself
Write a small Node.js script with the vulnerable merge function above, and confirm that after merging an attacker-supplied `__proto__` payload, a brand new plain object `{}` now has an `isAdmin` property.