Exploiting NoSQL operator injection to bypass authentication
Laboratorio de Portswigger sobre NoSQLI
Certificaciones
- eWPT
- eWPTXv2
- OSWE
- BSCP
Descripción
Este laboratorio utiliza una base de datos NoSQL en MongoDB para gestionar la funcionalidad de inicio de sesión. Es vulnerable a inyección NoSQL mediante operadores de MongoDB. Para resolver el laboratorio, debemos iniciar sesión en la aplicación como el usuario administrador. Podemos iniciar sesión en nuestra propia cuenta utilizando las credenciales wiener:peter
Guía de NoSQLI
Antes de completar este laboratorio es recomendable leerse esta guía de NoSQLI https://justice-reaper.github.io/posts/NoSQLI-Guide/
Resolución
Al acceder a la web vemos esto
Pulsamos sobre My account y nos logueamos con las credenciales wiener:peter
Si capturamos la petición con Burpsuite, vemos que se está enviando un JSON con el nombre de usuario y la contraseña
Modificamos la petición, con el operador de consulta $regex seleccionamos todos los usuarios que empiezan por adm y en el campo contraseña usamos el operador $ne con el valor null, es decir, cuya contraseña tiene un valor distinto de null
Hacemos click derecho y pulsamos Request in browser > In original session
Nos copiamos el enlace y lo pegamos en el navegador. Una vez hecho eso, habremos accedido a la cuenta del usuario administrador efectuando un login bypass






