
Descripción
This lab has a logic flaw in its purchasing workflow. To solve the lab, exploit this flaw to buy a «Lightweight l33t leather jacket».
You can log in to your own account using the following credentials: wiener:peter
Infinite money logic flaw writeup
Para completar este laboratorio lo dividiremos en 3 partes que se realizarán una vez iniciemos sesión en ‘My account’ con el usuario ‘wiener’ y la contraseña ‘peter’:
Encontrar el error que permite generar crédito infinito
En este caso, los pasos que se deben de seguir son los siguientes.
- Añadir al carrito el objeto ‘Gift Card’.
- Aplicar en el carrito el cupón ‘SIGNUP30’.
- Comprar la ‘Gift card’ por 7$.
- Canjear el código de la ‘Gift card’ por 10$.
Después de hacer todo esto, veremos que el saldo de la cuenta ha ascendido 3$:

Debido a que esto se puede hacer infinitamente, podemos conseguir el saldo suficiente como para comprar el objeto que nos pide el laboratorio. Para ello usaremos las macros de Burp Suite:
Programar la macro
En Burp Suite, arriba a la derecha encontraremos el botón ‘Options’. Lo pulsaremos e iremos a ‘Session’ y al final encontraremos las macros:

Pulsaremos en ‘Add’ y seleccionaremos las 5 peticiones que hemos determinado en el apartado anterior (2 peticiones son de confirmar la compra) con una peculiaridad. Debemos de indicar a Burp Suite que el parámetro de ‘gift-card’ lo debe de obtener de la petición anterior. Para ello seleccionamos la anterior, pulsamos en ‘Configure item’, ‘Add’ y seleccionamos de la petición el código y le damos el nombre de ‘gift-card’:

Ahora, en la siguiente petición, volveremos a pulsar en ‘Configure item’ y le indicaremos que tome el parámetro generado en la petición anterior:

El resultado debe ser el siguiente:

Y al pulsar en ‘Test macro’ debería de aumentar el crédito de la cuenta en 3$.
Añadiremos ahora la macro en la parte superior, en ‘Session handling rules’:

Y en el ‘Scope’ le diremos que lo haga siempre que se haga una petición a una URL cualquiera:

Iniciar el ataque
Nos llevamos ahora cualquier petición al ‘Intruder’ con Ctrl + I o Click derecho -> Send to Intruder. Allí realizaremos un ataque ‘Null payload’ 412 veces:

También le diremos que sólo realice 1 petición a la vez:

Comenzaremos el ataque (tardará un par de minutos), pero cuando termine tendremos el saldo suficiente:

Al comprarla habremos completado el laboratorio:
