Filtración OTP
La filtración OTP en la respuesta XHR (XMLHttpRequest), típicamente ocurre debido a la implementación pobre de 2FA o programación insegura. Algunas razones comunes por lo que esto ocurre son:
Validación del Lado del Servidor y Devolución de Información Sensible
En algunas aplicaciones diseñadas pobremente, el servidor valida el OTP y más que sólo confirmar el éxito o fracaso, devuelve el OTP en la respuesta. Esto es comúnmente hecho no intencionalmente, como parte del debugging, registro o prácticas pobres de manejo de respuestas.
Falta de Prácticas de Seguridad Adecuadas
Los desarrolladores pueden pasar por alto las implicaciones de seguridad de exponer información sensible como los OTP en las respuestas API. Esto suele pasar cuando los desarrolladores están concentrados en hacer la aplicación funcional sin considerar cómo los atacantes podrían explotar estas respuestas.
Información de Depuración Dejada en Producción
Durante el desarrollo o la fase de pruebas, los desarrolladores pueden incluir depuración detallada en las respuestas para ayudar a diagnosticar errores. Si estas no se eliminan en producción, pueden revelar información sensible para los atacantes.
Explotación
Vamos a http://mfa.thm/labs/first.

Vamos a las herramientas del desarrollador y a "Network" e iniciamos sesión en la aplicación usando:
- Username:
thm@mail.thm - Password:
test123

Una vez introducidas las credenciales, podemos observar que hay una respuesta llamada token de 16B.

Si navegamos hasta el apartado de "Response" dentro de la petición XHR, podemos ver el valor del token.

Cogemos el token y lo introducimos como OTP.

Y efectivamente así entramos.

