
Descripción
The login functionality for this lab is powered by a MongoDB NoSQL database. It is vulnerable to NoSQL injection using MongoDB operators.
To solve the lab, log into the application as the administrator
user.
You can log in to your own account using the following credentials: wiener:peter
.
Exploiting NoSQL operator injection to bypass authentication writeup
Al entrar encontraremos una tienda online:

Iremos al apartado de ‘My account’ e ingresaremos el usuario ‘wiener’ y la contraseña ‘peter’. La petición la enviaremos al ‘Repeater’ con Ctrl + R o click derecho -> Send to repeater:

Cambiaremos el JSON del final por el siguiente código:
{"username":{"$regex":"admin.*"},"password":{"$ne":""}}
Lo que hace este JSON es lo siguiente:
- Le dice a Mongo DB que el nombre de usuario debe de coincidir con la expresión regular «admin.*».
- Esta expresión regular es equivalente a «admin» y todas las combinaciones de caracteres que se le puedan añadir detrás.
- Le dice a Mongo DB que la contraseña no debe ser igual ($ne) a la cadena vacía «».
La aplicación ahora devolverá el usuario que cumpla con estos 2 requisitos:
- Que su nombre de usuario empiece por «admin».
- Que tenga contraseña.
Tras enviar la petición, iremos a la parte de la derecha (la respuesta), daremos Click derecho -> Show response in browser. Nos habrá copiado la URL en el portapapeles. Ahora al pegarla en el navegador resolveremos el laboratorio:
