0Pricing
Cryptology Academy · Lección

Vulnerabilidades de OAuth y patrones de ataque

Estudie la manipulación de redirect URI, el CSRF en el endpoint de autorización y las vulnerabilidades de filtración de tokens.

Vulnerabilidades de OAuth y patrones de ataque es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Redirección abierta en redirect_uri

Los servidores de autorización OAuth deben validar estrictamente el parámetro redirect_uri. Si el servidor permite coincidencias por prefijo o comodines (por ejemplo, acepta cualquier URL que comience por "https://app.example.com"), un atacante puede crear una solicitud de autorización que redirija a "https://app.example.com.attacker.com/steal" o a una redirección abierta en el dominio legítimo, y robar el código de autorización.

CSRF en el punto de conexión de autorización

Sin protección contra CSRF, un atacante puede iniciar un flujo OAuth y conseguir que el navegador de una víctima complete la autorización. La víctima autoriza inadvertidamente al cliente del atacante. El parámetro "state" (RFC 6749) evita esto: el cliente genera un state aleatorio, lo incluye en la solicitud y verifica que coincida en el callback. Si no coincide, se cancela el flujo.

Interceptación del código de autorización

En las plataformas móviles, las aplicaciones maliciosas pueden registrar el mismo esquema de URI personalizado que un cliente OAuth legítimo e interceptar los códigos de autorización redirigidos después de la autenticación del usuario. PKCE (RFC 7636) ofrece una defensa completa: el código interceptado no sirve de nada sin el verificador de código que solo la aplicación legítima generó al comienzo del flujo.

Filtración de tokens mediante la cabecera Referer

Cuando un token de ID o un token de acceso se incluye en un fragmento o parámetro de consulta de una URL, las navegaciones posteriores desde esa página incluyen la URL en la cabecera Referer, lo que puede filtrar el token a scripts de analítica de terceros o proveedores de CDN. Utilice siempre el flujo de código de autorización con entrega de tokens mediante el canal de retorno para evitar que los tokens aparezcan en las URL.

Ataques de confusión en configuraciones con varios proveedores

Cuando un cliente admite varios proveedores OAuth, los ataques de confusión hacen que el cliente envíe a la interfaz de tokens del proveedor B un código de autorización obtenido del proveedor A. El cliente debe validar el claim "iss" en los tokens de ID y vincular el callback al proveedor específico que inició el flujo mediante el parámetro state o JARM (JWT-Secured Authorization Response Mode).

SSRF mediante redirect_uri

Los ataques de falsificación de solicitudes del lado del servidor (SSRF) tienen como objetivo las implementaciones OAuth que realizan solicitudes HTTP desde el servidor a redirect_uri. Si el servidor de autorización obtiene redirect_uri para verificarlo, un atacante puede proporcionar una dirección IP interna (por ejemplo, http://169.254.169.254/latest/meta-data/) para acceder a los metadatos de una instancia en la nube o a servicios internos. Una validación estricta de redirect_uri basada en una lista de permitidos evita este ataque.

Toma de control de cuentas por colisión del claim de email

Muchas aplicaciones utilizan el claim de email de un token de ID de OIDC para vincular cuentas entre proveedores. Si un atacante controla una dirección de correo electrónico que coincide con la cuenta de una víctima en otro proveedor, puede registrarse con un proveedor diferente utilizando ese correo y obtener acceso a la cuenta de la víctima. Defensa: vincule las cuentas únicamente mediante el par (iss, sub), nunca solo mediante el correo electrónico.

Confusión del algoritmo de JWT

Los ataques de confusión del algoritmo JWT explotan las implementaciones que confían en la cabecera "alg" para seleccionar el algoritmo de verificación. El ataque consiste en cambiar "alg" de "RS256" a "HS256" y firmar el token con la clave pública del servidor como secreto HMAC (ya que la clave pública es pública). Defensa: especifique siempre explícitamente el algoritmo esperado en el código de verificación; nunca confíe en el claim alg de la cabecera del token.

Phishing OAuth mediante suplantación de la pantalla de consentimiento

Los atacantes registran clientes OAuth maliciosos con nombres y logotipos de apariencia legítima y después envían enlaces de phishing a sus objetivos. La víctima ve una pantalla de consentimiento OAuth auténtica (alojada por Google, Microsoft, etc.) correspondiente a una aplicación maliciosa y concede acceso. Defensa: verifique que client_id corresponda a la aplicación esperada; Google y Microsoft ofrecen programas de verificación de clientes para aplicaciones legítimas.

Ataques de escalada de scopes

La escalada de scopes ocurre cuando un cliente obtiene tokens con permisos más amplios que los que autorizó el usuario. Los fallos de implementación que omiten la validación de scopes en el punto de conexión de tokens, almacenan en caché tokens con scopes combinados de distintas solicitudes o no validan que el scope del token emitido no supere el scope autorizado pueden provocar una escalada de privilegios mediante OAuth.

Resumen de prácticas recomendadas de seguridad

Proteja las implementaciones OAuth mediante: validación de redirect_uri con coincidencia exacta, PKCE obligatorio para todos los clientes públicos, validación del parámetro state para protegerse contra CSRF, vinculación de tokens de ID mediante (iss, sub) y no mediante el correo electrónico, especificación explícita de los algoritmos JWT esperados, solicitud de scopes mínimos, uso de tokens de acceso de corta duración con rotación de tokens de actualización y auditoría del aspecto de la pantalla de consentimiento para detectar riesgos de suplantación de marca.

Comprobación de redirect_uri en OAuth

Un servidor de autorización OAuth acepta cualquier redirect_uri que comience por "https://app.example.com". ¿Qué ataque permite esto?

Resumen de la lección: patrones de ataque de OAuth

Ataques clave de OAuth: redirección abierta mediante una validación débil de redirect_uri (utilice una coincidencia exacta), CSRF por la ausencia del parámetro state, interceptación de códigos en dispositivos móviles (mitigada mediante PKCE), filtración de tokens en las URL, ataques de confusión en configuraciones con varios proveedores (valide iss), SSRF mediante redirect_uri obtenido por el servidor, colisión del claim de email (utilice iss+sub), confusión del algoritmo JWT (fije el alg esperado) y phishing mediante pantallas de consentimiento falsas.

Preguntas frecuentes

¿La lección «Vulnerabilidades de OAuth y patrones de ataque» es gratis?

Sí — el texto completo de «Vulnerabilidades de OAuth y patrones de ataque» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Vulnerabilidades de OAuth y patrones de ataque»?

Estudie la manipulación de redirect URI, el CSRF en el endpoint de autorización y las vulnerabilidades de filtración de tokens. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Vulnerabilidades de OAuth y patrones de ataque»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Flujos de OAuth 2.0 y tipos de tokens
  2. PKCE: protección de clientes públicos
  3. Claims y tokens de ID de OpenID Connect
  4. Vulnerabilidades de OAuth y patrones de ataque
← Volver a Cryptology Academy