
Descripción
To solve the lab, find and exploit a mass assignment vulnerability to buy a Lightweight l33t Leather Jacket. You can log in to your own account using the following credentials: wiener:peter.
Required knowledge
To solve this lab, you’ll need to know:
- What mass assignment is.
- Why mass assignment may result in hidden parameters.
- How to identify hidden parameters.
- How to exploit mass assignment vulnerabilities.
These points are covered in our API Testing Academy topic.
Exploiting a mass assignment vulnerability writeup
Exploramos la página, iniciamos sesión con el usuario ‘wiener’ y la contraseña ‘peter’ e iniciamos el ‘Logger’ de Burp Suite:

Entramos en el objeto a comprar, lo añadimos al carrito y lo intentamos pagar, dando el mensaje de error de que no tenemos suficientes fondos.

Una vez realizado esto, analizamos todas las peticiones que hay en en logger. Entre ellas encontramos dos peticiones a la API de checkout:

La API, por un lado crea con POST un objeto y luego lo obtiene de vuelta con GET, este objeto probablemente sea el carrito del cliente. En esta petición hay un ‘chosen_discount’, cuyo valor es 0. Enviamos la petición de POST al Repeater de Burp Suite con Ctrl + R. Una vez allí, copiamos el objeto JSON de la petición GET y lo modificamos para que el valor del descuento sea 100:
{
"chosen_discount":{
"percentage":100
},
"chosen_products":[{
"product_id":"1","name":"Lightweight \"l33t\" Leatherc Jacket","quantity":1,"item_price":133700
}]
}

Una vez enviado, al entrar al navegador se completará el laboratorio:
