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.

  1. Añadir al carrito el objeto ‘Gift Card’.
  2. Aplicar en el carrito el cupón ‘SIGNUP30’.
  3. Comprar la ‘Gift card’ por 7$.
  4. 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:

Deja una respuesta

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