Business Logic Vulnerabilities Lab 10
Skills
- Infinite money logic flaw
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