hacktricks/src/pentesting-web/account-takeover.md

6.5 KiB

Toma de Control de Cuenta

{{#include ../banners/hacktricks-training.md}}

Problema de Autorización

Se debe intentar cambiar el correo electrónico de una cuenta, y el proceso de confirmación debe ser examinado. Si se encuentra débil, el correo electrónico debe ser cambiado al del objetivo y luego confirmado.

Problema de Normalización de Unicode

  1. La cuenta del objetivo victim@gmail.com
  2. Se debe crear una cuenta usando Unicode
    por ejemplo: vićtim@gmail.com

Como se explicó en esta charla, el ataque anterior también podría realizarse abusando de proveedores de identidad de terceros:

  • Crear una cuenta en el proveedor de identidad de terceros con un correo electrónico similar al del objetivo usando algún carácter unicode (vićtim@company.com).
  • El proveedor de terceros no debería verificar el correo electrónico.
  • Si el proveedor de identidad verifica el correo electrónico, tal vez puedas atacar la parte del dominio como: victim@ćompany.com y registrar ese dominio y esperar que el proveedor de identidad genere la versión ascii del dominio mientras la plataforma del objetivo normaliza el nombre de dominio.
  • Iniciar sesión a través de este proveedor de identidad en la plataforma del objetivo que debería normalizar el carácter unicode y permitirte acceder a la cuenta del objetivo.

Para más detalles, consulta el documento sobre Normalización de Unicode:

{{#ref}} unicode-injection/unicode-normalization.md {{#endref}}

Reutilización del Token de Restablecimiento

Si el sistema objetivo permite que el enlace de restablecimiento sea reutilizado, se deben hacer esfuerzos para encontrar más enlaces de restablecimiento utilizando herramientas como gau, wayback o scan.io.

Pre Toma de Control de Cuenta

  1. El correo electrónico de la víctima debe ser utilizado para registrarse en la plataforma, y se debe establecer una contraseña (se debe intentar confirmarla, aunque carecer de acceso a los correos electrónicos de la víctima podría hacer esto imposible).
  2. Se debe esperar hasta que la víctima se registre usando OAuth y confirme la cuenta.
  3. Se espera que el registro regular sea confirmado, permitiendo el acceso a la cuenta de la víctima.

Configuración Incorrecta de CORS para Toma de Control de Cuenta

Si la página contiene configuraciones incorrectas de CORS, podrías ser capaz de robar información sensible del usuario para tomar el control de su cuenta o hacer que cambie la información de autenticación con el mismo propósito:

{{#ref}} cors-bypass.md {{#endref}}

CSRF para Toma de Control de Cuenta

Si la página es vulnerable a CSRF, podrías ser capaz de hacer que el usuario modifique su contraseña, correo electrónico o autenticación para que luego puedas acceder a ello:

{{#ref}} csrf-cross-site-request-forgery.md {{#endref}}

XSS para Toma de Control de Cuenta

Si encuentras un XSS en la aplicación, podrías ser capaz de robar cookies, almacenamiento local o información de la página web que podría permitirte tomar el control de la cuenta:

{{#ref}} xss-cross-site-scripting/ {{#endref}}

Same Origin + Cookies

Si encuentras un XSS limitado o una toma de control de subdominio, podrías jugar con las cookies (fijándolas, por ejemplo) para intentar comprometer la cuenta de la víctima:

{{#ref}} hacking-with-cookies/ {{#endref}}

Atacando el Mecanismo de Restablecimiento de Contraseña

{{#ref}} reset-password.md {{#endref}}

Manipulación de Respuesta

Si la respuesta de autenticación podría ser reducida a un simple booleano, solo intenta cambiar false a true y ver si obtienes algún acceso.

OAuth para Toma de Control de Cuenta

{{#ref}} oauth-to-account-takeover.md {{#endref}}

Inyección de Encabezado Host

  1. El encabezado Host se modifica tras la iniciación de una solicitud de restablecimiento de contraseña.
  2. El encabezado proxy X-Forwarded-For se altera a attacker.com.
  3. Los encabezados Host, Referente y Origen se cambian simultáneamente a attacker.com.
  4. Después de iniciar un restablecimiento de contraseña y optar por reenviar el correo, se emplean los tres métodos mencionados anteriormente.

Manipulación de Respuesta

  1. Manipulación de Código: El código de estado se altera a 200 OK.
  2. Manipulación de Código y Cuerpo:
  • El código de estado se cambia a 200 OK.
  • El cuerpo de la respuesta se modifica a {"success":true} o un objeto vacío {}.

Estas técnicas de manipulación son efectivas en escenarios donde se utiliza JSON para la transmisión y recepción de datos.

Cambiar correo electrónico de la sesión actual

De este informe:

  • El atacante solicita cambiar su correo electrónico por uno nuevo.
  • El atacante recibe un enlace para confirmar el cambio de correo electrónico.
  • El atacante envía el enlace a la víctima para que lo haga clic.
  • El correo electrónico de la víctima se cambia al indicado por el atacante.
  • El atacante puede recuperar la contraseña y tomar el control de la cuenta.

Esto también ocurrió en este informe.

Bypass de verificación de correo electrónico para Toma de Control de Cuenta

  • El atacante inicia sesión con attacker@test.com y verifica el correo electrónico al registrarse.
  • El atacante cambia el correo electrónico verificado a victim@test.com (sin verificación secundaria en el cambio de correo electrónico).
  • Ahora el sitio web permite que victim@test.com inicie sesión y hemos eludido la verificación de correo electrónico del usuario víctima.

Cookies Antiguas

Como se explicó en esta publicación, fue posible iniciar sesión en una cuenta, guardar las cookies como un usuario autenticado, cerrar sesión y luego iniciar sesión nuevamente.
Con el nuevo inicio de sesión, aunque se podrían generar cookies diferentes, las antiguas comenzaron a funcionar nuevamente.

Referencias

{{#include ../banners/hacktricks-training.md}}