Multi-endpoint race conditions writeup

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:

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.

Deja una respuesta

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