Infinite money logic flaw
Laboratorio de Portswigger sobre Business Logic Vulnerabilities
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio tiene un fallo lógico en su flujo de compra. Para resolver el laboratorio, debemos explotar este fallo para comprar el artículo Lightweight "l33t" Leather Jacket. Podemos iniciar sesión en nuestra propia cuenta utilizando las credenciales wiener:peter
Resolución
Al acceder a la web vemos esto
Hacemos click sobre My account y nos logueamos con las credenciales wiener:peter
Al loguearnos vemos esto
En la parte inferior de la web nos podemos suscribir
Al hacerlo nos aparece un alert con el cupón SIGNUP30
Aplicamos el código de descuento
Si pulsamos en Place order recibiremos un código de tarjeta regalo
Si pulsamos sobre My account y añadimos un código de descuento vemos que el código de descuento es superior al coste del producto, por lo tanto podríamos aumentar la cantidad de dinero que tenemos en nuestra cuenta de forma ilimitada
Podemos automatizar este proceso mediante las macros de Burpsuite, para configurarlas debemos acceder a Settings > Sessions > Macros
Añadimos las peticiones a la macro, para ello mantenemos pulsada la tecla CTRL y hacemos click izquierdo sobre las peticiones que queramos
Vamos a añadir una expresión regular en el cuarto elemento, para ello lo seleccionamos y pulsamos Configure item
Pulsamos en Add
Como Parameter name le ponemos gift-card y marcamos el primer código de descuento que aparece. Marcamos el primer código porque es la posición que se actualiza cuando añadimos un nuevo código
Señalamos la quinta petición y pulsamos sobre Configure item
Modificamos el valor gift-card de Use preset value a Derive from prior response
Podemos testear la macro pulsando en Test macro
Para ver si funciona realmente accedemos a /my-account y vemos como el dinero que tenemos disponible ha aumentado
Para que la macro funcione debemos dirigirnos a Session handling rules y añadir una nueva regla
En la pestaña de Details debemos pulsar sobre Add > Run a macro
Seleccionamos la macro que queremos y pulsamos en OK
En la pestaña de Scope, seleccionamos la casilla Proxy (use with caution) y la casilla Incluse all URLs
Después de configurar esto, cada vez que mandemos un petición se activará la macro. Debemos capturar una petición a la web mediante Burpsuite y mandarla al Intruder
En la pestaña de payloads seleccionamos como tipo de payload Null payloads
En la pestaña Resource pool debemos seleccionar un único hilo, esto lo debemos hacer porque el orden de las peticiones es importante
Empezamos el ataque y vamos recargando la web con F5 hasta que veamos que tenemos dinero suficiente para comprar el artículo Lightweight "l33t" Leather Jacket. También es importante recalcar que de la forma que hemos configurado nosotros la macro, con tan solo recargar la web desde el navegador funcionaría, esto se debe a que estamos tunelizando las peticiones a través de Burpsuite


























