Account Takeover

Apoya a HackTricks

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 víctima previsto y luego confirmado.

Problema de Normalización de Unicode

  1. La cuenta del víctima previsto 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 víctima 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 víctima normaliza el nombre de dominio.

  • Iniciar sesión a través de este proveedor de identidad en la plataforma del víctima que debería normalizar el carácter unicode y permitirte acceder a la cuenta del víctima.

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

Unicode Normalization

Reutilización de 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 del 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 del víctima podría hacer esto imposible).

  2. Se debe esperar hasta que el 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 del 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:

CORS - Misconfigurations & Bypass

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:

CSRF (Cross Site Request Forgery)

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:

XSS (Cross Site Scripting)

Misma Origen + 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 del víctima:

Cookies Hacking

Atacando el Mecanismo de Restablecimiento de Contraseña

Reset/Forgotten Password Bypass

Manipulación de Respuesta

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

OAuth para Toma de Control de Cuenta

OAuth to Account takeover

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, Referer y Origin 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 del correo electrónico.

  • El atacante envía al víctima el enlace para que lo haga clic.

  • El correo electrónico del 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.

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

Apoya a HackTricks

Last updated