
Mongo Vulnub Lab...Essayez de le pirater.....!
Aperçu du défi
Ce défi Capture The Flag (CTF) repose sur la CVE-2024-53900, une vulnérabilité dans Mongoose qui permet l'exécution de code à distance (RCE) en raison d'une utilisation inappropriée de l'opérateur $where dans les requêtes MongoDB.
Votre objectif est d'exploiter cette vulnérabilité et de récupérer le flag caché dans l'application !
Instructions de configuration
1 Installer les dépendances Assurez-vous que Node.js est installé, puis exécutez :
npm install
2 Configurer MongoDB Installez MongoDB et assurez-vous qu'il est en cours d'exécution. Créez un fichier .env à la racine avec ce qui suit :
MONGO_URI=mongodb://localhost:27017/ctf_db
3 Démarrer le serveur Exécutez le serveur Express vulnérable :
node server.js
Le serveur démarrera à l'adresse : http://localhost:3000
Objectif du défi
Votre objectif est de contourner l'authentification et d'extraire le flag de l'endpoint vulnérable.
Endpoint vulnérable :
POST /login
L'application utilise une requête MongoDB $where non sécurisée, ce qui la rend vulnérable à l'injection NoSQL et à l'exécution de code à distance (RCE).
Indice d'exploitation :
Essayez des payloads d'injection NoSQL pour manipuler la requête.
Injectez du code JavaScript dans la condition $where.
Récupérez le flag caché dans la réponse.
Structure du répertoire
│── public/ Frontend assets
│ ├── index.html CTF challenge UI
│ ├── style.css Styling for the challenge
│ └── script.js JavaScript for login request
│── .env Environment variables (MongoDB URI)
│── server.js Vulnerable Express.js server
│── package.json Dependencies & scripts
│── package-lock.json Lock file for dependencies
└── README.md Challenge guide (this file)
Condition de victoire
Si vous exploitez la vulnérabilité avec succès, vous obtiendrez la réponse :
Connexion réussie ! Voici votre flag : FLAG{**__****}