Entrada

Limit overrun race conditions

Laboratorio de Portswigger sobre Race Conditions

Limit overrun race conditions

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

El flujo de compra de este laboratorio contiene una race condition que permite comprar artículos a un precio no deseado. Para resolver el laboratorio, debemos comprar una Lightweight L33t Leather Jacket. Podemos iniciar sesión en nuestra cuenta con las credenciales wiener:peter


Guía de race conditions

Antes de completar este laboratorio es recomendable leerse esta guía de race conditions https://justice-reaper.github.io/posts/Race-Conditions-Guide/

Resolución

Al acceder a la web vemos esto

Si hacemos click sobre My account, nos podemos loguear con las credenciales wiener:peter

Una vez logueamos vemos que tenemos una cierta cantidad de dinero en nuestra cuenta y que también tenemos la opción de modificar nuestro email

Podemos añadir productos a la cesta, para ello pulsamos sobre View details > Add to cart. Si después añadir el producto a la cesta pinchamos sobre ella veremos esto

Podemos aplicar el cupón de descuento PROMO20

Si pulsamos sobre Place order compraremos el producto y se nos descontará el dinero de nuestra cuenta

Para comprobar si existe una race condition en este laboratorio, vamos a hacerlo a la hora de aplicar el cupón de descuento. Debemos añadir el artículo Lightweight "l33t" Leather Jacket a la cesta y aplicar el cupón PROMO20

Si nos dirigimos a la extensión Logger ++ de Burpsuite podemos ver la petición gracias a la cual se aplica el cupón

Mandamos la petición al Repeater y nos abrimos 30 pestañas por ejemplo

Lo siguiente que debemos hacer es hacer click derecho sobre cualquier pestaña o sobre los tres puntos y pulsar Add tab to group > Create tab group

Señalamos todas las casillas y creamos un nuevo grupo

Debemos pinchar sobre el desplegable que aparece en Send, seleccionar la opción Send group in parallel (single-packet attack) y posteriormente pulsar en Send para que se efectúe el ataque. Para que funcione el ataque debemos eliminar el cupón, si lo tenemos aplicado no funcionará porque la web detectará que ya está aplicado. Esto se debe a la naturaleza de la Race condition, esta vulnerabilidad se explota enviando varias peticiones y haciendo que lleguen al mismo tiempo y esto no puede ocurrir si la web detecta que ya está aplicado el cupón

Una vez hecho esto, si nos dirigimos a la web podemos ver como ha funcionado

Si pulsamos en Place order compraremos el producto y resolveremos el laboratorio

Esta entrada está licenciada bajo CC BY 4.0 por el autor.