hacktricks/pentesting-web/2fa-bypass.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

6.2 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Bypass de autenticación de dos factores

Bypass directo

Para saltarse la autenticación de dos factores, simplemente intenta acceder directamente al siguiente endpoint (necesitas conocer la ruta del siguiente endpoint). Si esto no funciona, intenta cambiar el encabezado Referrer como si vinieras de la página de autenticación de dos factores.

Reutilización de token

Quizás puedas reutilizar un token previamente utilizado dentro de la cuenta para autenticarte.

Compartir tokens no utilizados

Comprueba si puedes obtener el token de tu cuenta e intenta usarlo para saltarte la autenticación de dos factores en una cuenta diferente.

Token filtrado

¿Se filtra el token en una respuesta de la aplicación web?

Permiso de sesión

Usando la misma sesión, inicia el flujo usando tu cuenta y la cuenta de la víctima. Cuando llegues al punto de autenticación de dos factores en ambas cuentas, completa la autenticación de dos factores con tu cuenta pero no accedas a la siguiente parte. En lugar de eso, intenta acceder al siguiente paso con el flujo de la cuenta de la víctima. Si el back-end solo establece un booleano dentro de tus sesiones diciendo que has pasado la autenticación de dos factores con éxito, podrás saltarte la autenticación de dos factores de la víctima.

Función de restablecimiento de contraseña

En casi todas las aplicaciones web, la función de restablecimiento de contraseña inicia sesión automáticamente en la aplicación después de que se complete el procedimiento de restablecimiento.
Comprueba si se envía un correo electrónico con un enlace para restablecer la contraseña y si puedes reutilizar ese enlace para restablecer la contraseña tantas veces como quieras (incluso si la víctima cambia su dirección de correo electrónico).

OAuth

Si puedes comprometer la cuenta del usuario en una plataforma de OAuth confiable (Google, Facebook...)

Fuerza bruta

Falta de límite de velocidad

¿Hay algún límite en el número de códigos que puedes probar, para que puedas simplemente hacer fuerza bruta? Ten cuidado con un posible límite de velocidad "silencioso", siempre prueba varios códigos y luego el real para confirmar la vulnerabilidad.

Límite de velocidad del flujo pero sin límite de velocidad

En este caso, hay un límite de velocidad del flujo (tienes que hacer fuerza bruta muy lentamente: 1 hilo y algo de tiempo de espera antes de 2 intentos) pero no hay límite de velocidad. Así que con suficiente tiempo, puedes ser capaz de encontrar el código válido.

Reenviar el código y restablecer el límite

Hay un límite de velocidad, pero cuando "reenvías el código" se envía el mismo código y se restablece el límite de velocidad. Entonces, puedes hacer fuerza bruta en el código mientras lo reenvías para que nunca se alcance el límite de velocidad.

Bypass del límite de velocidad del lado del cliente

{% content-ref url="rate-limit-bypass.md" %} rate-limit-bypass.md {% endcontent-ref %}

Falta de límite de velocidad en la cuenta del usuario

A veces puedes configurar la autenticación de dos factores para algunas acciones dentro de tu cuenta (cambiar correo electrónico, contraseña...). Sin embargo, incluso en los casos en que hay un límite de velocidad cuando intentas iniciar sesión, no hay ningún límite de velocidad para proteger las acciones dentro de la cuenta.

Falta de límite de velocidad al reenviar el código por SMS

No podrás saltarte la autenticación de dos factores, pero podrás gastar el dinero de la empresa.

Regeneración infinita de OTP

Si puedes generar un nuevo OTP infinitas veces, el OTP es lo suficientemente simple (4 números), y puedes probar hasta 4 o 5 tokens por OTP generado, simplemente puedes probar los mismos 4 o 5 tokens cada vez y generar OTP hasta que coincida con los que estás usando.

CSRF/Clickjacking

Comprueba si hay una vulnerabilidad de Cross Site Request Forgery (CSRF) o de Clickjacking para desactivar la autenticación de dos factores.

Funcionalidad de recordarme

Si la funcionalidad de "recordarme" utiliza una nueva cookie con un código adivinable, intenta adivinarlo.

Dirección IP

Si la funcionalidad de "recordarme" está vinculada a tu dirección IP, puedes intentar averiguar la dirección IP de la víctima e impersonarla usando el encabezado X-Forwarded-For.

Versiones antiguas

Subdominios

Si puedes encontrar algunos subdominios de "pruebas" con la funcionalidad de inicio de sesión, podrían estar utilizando versiones antiguas que no admiten la autenticación de dos factores (por lo que se