Loading page
Review the challenge brief, files, and requirements.
A Node.js application uses a vulnerable merge function. Exploit prototype pollution to achieve RCE.
function merge(target, source) {
for (let key in source) {
if (typeof source[key] === 'object') {
target[key] = merge(target[key] || {}, source[key]);
} else {
target[key] = source[key];
}
}
return target;
}
POST /api/settings
Content-Type: application/json
{"theme": "dark"}
Pollute Object.prototype, redirect execution through the merge path, and recover code execution.
Sign in to attempt this challenge.
Use Proving Grounds to continue your challenge practice.
Open Proving Grounds