Attaque
Injection SQL
Aussi appeléSQLiSQL injection
En résumé
Une vulnérabilité où des données saisies par l’utilisateur sont interprétées comme du code SQL par la base de données, faute de séparation entre la requête et ses paramètres. L’attaquant peut alors lire, modifier ou supprimer des données, voire contourner une authentification.
Injection SQL, en détail
SQL (Structured Query Language) est le langage d’interrogation des bases de données relationnelles. Lorsqu’une application construit une requête en concaténant du texte fourni par l’utilisateur, ce texte peut contenir des fragments de SQL qui modifient le sens de la requête. Un champ de connexion qui reçoit une chaîne conçue pour rendre la condition toujours vraie en est l’illustration classique. Selon les droits du compte de base de données, l’impact va de la simple lecture à l’exécution de commandes sur le serveur.
Certaines injections sont dites aveugles : la réponse n’affiche aucune donnée, mais l’attaquant déduit l’information bit par bit, par la différence de contenu ou de temps de réponse. Elles sont plus lentes à exploiter mais tout aussi graves. Les scanners en détectent une partie, surtout sur les paramètres évidents ; ils manquent souvent celles qui se trouvent dans des formats secondaires, comme un champ JSON, un en-tête ou un tri dynamique. Le correctif de référence est la requête paramétrée (ou préparée), qui transmet le code et les données séparément à la base. Les ORM (outils de mapping objet-relationnel) l’appliquent par défaut, mais exposent aussi des méthodes de requête brute qui réintroduisent le risque. Il faut y ajouter un compte de base de données limité aux droits strictement nécessaires.
Qu’est-ce que cela change pour vous ?
Une injection SQL exploitable donne souvent accès à l’ensemble de la base, y compris aux données d’autres clients et aux hachages de mots de passe. C’est un défaut ancien, bien documenté et évitable : sa présence dit quelque chose de la maturité du cycle de développement.
Exemple illustratif (fictif)
Imaginons un portail B2B dont le paramètre de tri d’un tableau de commandes est recopié tel quel dans la requête. Un analyste pourrait en extraire la liste des comptes utilisateurs d’une autre société cliente, sans qu’aucun champ de formulaire classique ne soit en cause.
La confusion fréquente
Croire qu’un pare-feu applicatif (WAF) ou un filtrage des caractères spéciaux suffit. Ces mesures réduisent le bruit, mais se contournent ; seule la séparation entre requête et données traite la cause.
Comment le détecter chez vous ?
- Pentest web : la prestationSavoir ce qu’un attaquant obtiendrait sur votre application.
- Audit de code : la prestationRetrouver la ligne de code responsable et la raison pour laquelle elle a été écrite.
Aller plus loin
- ArticleOWASP Top 10 : les dix risques expliqués pour décideurs et développeursLes dix catégories de risques de l’OWASP Top 10:2025 expliquées simplement : ce que chacune recouvre, comment un test d’intrusion la vérifie et ce que le classement ne dit pas.
- ArticleLire un rapport de scan de vulnérabilités : ce qu’il prouve et ce qu’il rateUn rapport de scan est une liste de candidats, pas de faits : faux positifs, gravité hors contexte, zones non atteintes. Comment le lire et le vérifier.
- ComparatifTest d’intrusion ou bug bounty : faut-il ouvrir un programme de primes ?Une mission cadrée et un programme de primes ont des modèles économiques opposés et des couvertures différentes. Ce que chacun apporte, ce qu’il suppose en interne, et quand l’un ne se justifie pas encore.
Termes liés
- AttaqueExécution de code à distance : définitionUne vulnérabilité qui permet à un attaquant d’exécuter ses propres commandes ou son propre code sur un système distant, sans y avoir d’accès légitime.
- AttaqueCross-site scripting : définitionUne vulnérabilité qui permet d’injecter du code JavaScript dans une page web consultée par d’autres utilisateurs.
- AttaqueSSRF : définitionUne vulnérabilité où l’attaquant amène un serveur à émettre une requête vers une destination qu’il choisit.
- AttaqueExfiltration de données : définitionLe transfert non autorisé de données depuis un système d’information vers un emplacement contrôlé par un attaquant.
- TechniqueOWASP Top 10 : définitionLe classement, publié par la fondation OWASP, des dix catégories de risques de sécurité les plus critiques pour les applications web.
Réponse à toute demande sous 24 h ouvrées
Un périmètre à faire tester ?
Le cadrage est gratuit et sans engagement. Trente minutes suffisent à savoir si une mission est pertinente, laquelle, et ce qu’elle coûterait.
- Accord de confidentialité systématique
- Cadrage gratuit et sans engagement
- Périmètre et prix écrits avant le début