Prueba de autenticación rota

Cuando las funciones de autenticación relacionadas con la aplicación no se implementan correctamente, permite a los piratas informáticos comprometer contraseñas o ID de sesión o explotar otras fallas de implementación utilizando las credenciales de otros usuarios.

Comprendamos los agentes de amenazas, los vectores de ataque, la debilidad de la seguridad, el impacto técnico y los impactos comerciales de esta falla con la ayuda de un diagrama simple.

Ejemplo

An e-commerce application supports URL rewriting, putting session IDs in the URL −

http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop

Un usuario autenticado del sitio reenvía la URL a sus amigos para conocer las ventas con descuento. Envía por correo electrónico el enlace anterior sin saber que el usuario también está regalando los ID de sesión. Cuando sus amigos usan el enlace, usan su sesión y su tarjeta de crédito.

Las manos en

Step 1- Inicie sesión en Webgoat y navegue hasta la sección "Fallos en la gestión de sesiones". Evitemos la autenticación falsificando la cookie. A continuación se muestra la instantánea del escenario.

Step 2 - Cuando iniciamos sesión con las credenciales webgoat / webgoat, encontramos en Burp Suite que el ID de JSESSION es C8F3177CCAFF380441ABF71090748F2E mientras que AuthCookie = 65432ubphcfx después de una autenticación exitosa.

Step 3 - Cuando iniciamos sesión usando el aspecto / aspecto de las credenciales, encontramos en Burp Suite que el ID de JSESSION es C8F3177CCAFF380441ABF71090748F2E mientras que AuthCookie = 65432udfqtb después de la autenticación exitosa.

Step 4- Ahora tenemos que analizar los patrones de AuthCookie. La primera mitad '65432' es común para ambas autenticaciones. Por lo tanto, ahora estamos interesados ​​en analizar la última parte de los valores de authcookie, como - ubphcfx para usuario webgoat y udfqtb para usuario de aspecto, respectivamente.

Step 5- Si echamos un vistazo en profundidad a los valores de AuthCookie, la última parte tiene la misma longitud que la del nombre de usuario. Por tanto, es evidente que el nombre de usuario se utiliza con algún método de cifrado. Tras el ensayo y los errores / mecanismos de fuerza bruta, encontramos que después de invertir el nombre de usuario, webgoat; terminamos con taogbew y luego el carácter del alfabeto anterior es lo que se usa como AuthCookie. es decir, ubphcfx.

Step 6- Si le pasamos este valor a la cookie y veamos qué pasa. Al autenticarse como usuario webgoat, cambie el valor de AuthCookie para burlarse del usuario Alice encontrando la AuthCookie para el mismo realizando el paso 4 y 5.

Mecanismos de prevención

  • Desarrolle controles sólidos de autenticación y administración de sesiones de manera que cumpla con todos los requisitos de autenticación y administración de sesiones definidos en el Estándar de verificación de seguridad de aplicaciones de OWASP.

  • Los desarrolladores deben asegurarse de evitar fallas XSS que pueden usarse para robar ID de sesión.