Detecting server-side prototype pollution without polluted property reflection writeup

Descripción

This lab is vulnerable to DOM XSS via client-side prototype pollution. This is due to a gadget in a third-party liThis lab is built on Node.js and the Express framework. It is vulnerable to server-side prototype pollution because it unsafely merges user-controllable input into a server-side JavaScript object.

To solve the lab, confirm the vulnerability by polluting Object.prototype in a way that triggers a noticeable but non-destructive change in the server’s behavior. As this lab is designed to help you practice non-destructive detection techniques, you don’t need to progress to exploitation.

You can log in to your own account with the following credentials: wiener:peter

Detecting server-side prototype pollution without polluted property reflection writeup

Este laboratorio es muy similar al anterior (Privilege escalation via server-side prototype pollution). Al entrar encontraremos una tienda online. Iremos a ‘My account’ a iniciar sesión con el usuario ‘wiener’ y la contraseña ‘peter’. Al hacerlo aparecerá un formulario:

Interceptaremos la petición de enviar el formulario con el ‘Logger’ de Burp Suite:

Esta vez cambiar la propiedad de ‘isAdmin’ no completará el laboratorio (pese a que así confirmamos que es vulnerable a prototype pollution).

Añadiremos una coma a la última propiedad del JSON, forzando un error, nos devolverá un nuevo JSON con dos códigos de error 400, pero la cabecera HTTP nos dará el error 500.

Añadiremos la propiedad ‘__proto__’ con el atributo ‘statusCode’ y el valor ‘200’ para sobreescribirlo:

Y al volver al navegador completaremos el laboratorio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *