
Descripción
This lab’s purchasing flow contains a race condition that enables you to purchase items for an unintended price.
To solve the lab, successfully purchase a Lightweight L33t Leather Jacket.
You can log into your account with the following credentials: wiener:peter.
Multi-endpoint race conditions writeup
Accederemos al laboratorio, nos registraremos en ‘My account’ con el usuario ‘wiener’ y la contraseña ‘peter’ y veremos una tienda online con varios productos:

Sólo podremos comprar la ‘Gift Card’, pero tenemos que comprar la ‘Lightweight l33t Leather Jacket’. Para ello compraremos una ‘Gift Card’ y registraremos el proceso con el ‘Logger’:

Tendremos las siguientes peticiones:
- POST /cart: Añade el producto al carrito.
- POST /cart/checkout: Compra el producto del carrito.
Nos llevamos ambas peticiones al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater:

Con una tarjeta comprada (para tener algo en el carrito), cambiaremos el id de la petición de añadir al carrito a 1, seleccionando así la chaqueta. Tras esto enviaremos ambas peticiones en paralelo, completando así el laboratorio:

Nota: Si el tiempo entre peticiones es distinto, para que funcione, habrá que añadir una petición GET a la raíz al inicio de las dos peticiones mencionadas para ‘calentar la conexión’ y así disminuir el tiempo necesario y mejorar las posibilidades de la condición de carrera. En este caso, las peticiones tardaron 434 ms ambas, por lo que no fue necesario.
Consultor de ciberseguridad especializado en continuidad de negocio y respuesta ante incidentes. Interesado en analizar tecnologías desde una perspectiva de seguridad y descubrir su comportamiento real.
