Account Takeover
Last updated
Last updated
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Se debe intentar cambiar el correo de una cuenta, y el proceso de confirmación debe ser examinado. Si se encuentra débil, el correo debe ser cambiado al del objetivo y luego confirmado.
La cuenta del objetivo victim@gmail.com
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 similar al de la víctima usando algún carácter unicode (vićtim@company.com
).
El proveedor de terceros no debería verificar el correo.
Si el proveedor de identidad verifica el correo, 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 de la víctima normaliza el nombre de dominio.
Iniciar sesión a través de este proveedor de identidad en la plataforma de la víctima que debería normalizar el carácter unicode y permitirte acceder a la cuenta de la víctima.
Para más detalles, consulta el documento sobre Normalización de Unicode:
Unicode NormalizationSi 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
.
El correo 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 de la víctima podría hacer esto imposible).
Se debe esperar hasta que la víctima se registre usando OAuth y confirme la cuenta.
Se espera que el registro regular sea confirmado, permitiendo el acceso a la cuenta de la víctima.
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 & BypassSi la página es vulnerable a CSRF, podrías ser capaz de hacer que el usuario modifique su contraseña, correo o autenticación para que luego puedas acceder a ello:
CSRF (Cross Site Request Forgery)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)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:
Cookies HackingSi la respuesta de autenticación podría ser reducida a un simple booleano, solo intenta cambiar falso a verdadero y ver si obtienes acceso.
El encabezado Host se modifica tras la iniciación de una solicitud de restablecimiento de contraseña.
El encabezado proxy X-Forwarded-For
se altera a attacker.com
.
Los encabezados Host, Referer y Origin se cambian simultáneamente a attacker.com
.
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 Código: El código de estado se altera a 200 OK
.
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.
De este informe:
El atacante solicita cambiar su correo por uno nuevo.
El atacante recibe un enlace para confirmar el cambio del correo.
El atacante envía el enlace a la víctima para que lo haga clic.
El correo 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.
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.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)