Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Outils open source — Gratuits, portables, hors ligne
Caractéristiques communes
100 % hors ligne — aucune donnée transmise
Portables — un seul fichier exécutable
Gratuits — MIT ou GPL v3
Code source ouvert sur GitHub
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Academy Contact

NoSQL Injection

hacking

Définition

L'injection NoSQL est une vulnérabilité applicative permettant à un attaquant d'altérer la logique d'une requête adressée à une base de données non relationnelle, comme MongoDB, Couchbase ou Redis, en injectant des opérateurs ou des structures de requête non prévues via des champs de saisie insuffisamment validés. Contrairement à l'injection SQL classique, elle exploite souvent la nature typée du langage de requête, par exemple en soumettant un objet JSON contenant un opérateur MongoDB comme dollar-ne ou dollar-gt à la place d'une chaîne de caractères attendue, permettant de contourner une vérification d'authentification ou d'extraire des données non autorisées. Cette classe de vulnérabilité relève de la catégorie A03:2021 du OWASP Top 10 relative aux injections. Elle est fréquente dans les applications construites avec des frameworks JavaScript où les paramètres de requête HTTP sont directement transmis à la couche de persistance sans validation stricte de type. En défense, la validation systématique du type et de la structure attendue des entrées utilisateur, l'utilisation de requêtes paramétrées ou d'ORM appliquant un échappement natif, la désactivation de l'exécution de JavaScript côté serveur dans MongoDB via l'option correspondante, et le principe de moindre privilège sur les comptes applicatifs de base de données constituent les contre-mesures principales, complétées par une journalisation des requêtes anormales pour la détection.

Description

Les injections NoSQL ciblent des bases comme MongoDB via la manipulation d'opérateurs JSON. Des payloads utilisant des opérateurs comme $gt, $ne ou $where permettent de contourner l'authentification ou d'exfiltrer des collections entières de données.

Exploitation

Un payload {"password": {"$gt": ""}} retourne true pour tout mot de passe non vide dans MongoDB. L'opérateur $where permet d'exécuter des fonctions JavaScript arbitraires lors de l'évaluation des requêtes, menant à une exfiltration de données ou un DoS.

Défense

  • Valider et typer strictement toutes les entrées avant de construire des requêtes NoSQL
  • Désactiver les opérateurs $where et les fonctions JavaScript dans la configuration MongoDB
  • Utiliser des ODM avec validation de schéma (Mongoose) pour rejeter les structures d'opérateurs inattendues

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis