Comment fonctionne une attaque par injection SQL ? Exemples et types

Nov 23, 2021
6 minute read
ServerWatch content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Une attaque par injection SQL (SQLi) est l’un des problèmes les plus menaçants pour l’« ,intégrité des données et la confidentialité aujourd’hui : elle permet à des attaquants d’accéder à des données sécurisées sans y être autorisés. Dans cet article, nous expliquons ce qu’est une injection SQL et comment fonctionnent ces attaques, avec des exemples et leurs différents types.

Qu’est-ce qu’une injection SQL ?

L’injection ou insertion SQL est une technique d’attaque malveillante qui exploite les vulnérabilités des applications reposant sur SQL. Avec une injection SQLi, les pirates injectent du code arbitraire dans des requêtes SQL, ce qui leur permet d’ajouter, de modifier et de supprimer directement des enregistrements stockés dans une base de données. Les attaques par injection SQLi peuvent toucher toute application web ou tout site web utilisant une base de données SQL, notamment MySQL, SQL Server, Oracle et d’autres.

Les pirates injectent du code arbitraire dans des requêtes SQL, ce qui leur permet d’ajouter, de modifier et de supprimer directement des enregistrements stockés dans une base de données.

Les premières discussions publiques sur les injections SQLi ont été lancées en 1998 par Jeff Forristal. Forristal a déclaré dans une interview consacrée aux injections SQLi : « Je peux complètement changer le fonctionnement de SQL. » En 2017, l’Open Web Application Security Project (OWASP) a classé l’injection parmi les menaces les plus répandues contre les applications web vulnérables.

Les pirates peuvent utiliser des attaques SQLi pour accéder sans autorisation à des données sensibles, telles que des informations personnelles, des données d’entreprise, des données clients ou des secrets commerciaux. Les attaques SQLi permettent d’exécuter des instructions SQL malveillantes capables de contrôler le serveur de base de données situé derrière une application web.

Les attaquants peuvent exploiter les vulnérabilités SQL pour contourner la sécurité des applications et passer outre l’autorisation et l’authentification d’une application web afin de récupérer les données de l’ensemble de la base de données.

En savoir plus : Les meilleurs outils de surveillance et de performance de SQL Server en 2022

Advertisement

Comment fonctionne une attaque par injection SQL ?

SQL (Structured Query Language) est un langage de programmation standardisé conçu pour gérer les données stockées dans des bases de données relationnelles. Une attaque SQLi consiste à injecter ou insérer une requête SQL au moyen de données d’entrée. Les commandes SQL sont injectées dans une entrée du plan de données qui attaque l’exécution de commandes SQL prédéfinies.

Une attaque SQLi consiste à injecter ou insérer une requête SQL au moyen de données d’entrée.

Pour mener une attaque SQLi, les attaquants repèrent une entrée vulnérable sur un site ou une application web. Ils exploitent ensuite cette vulnérabilité en utilisant une saisie utilisateur prenant la forme d’une requête SQL. ​L’attaquant exécute une commande SQL spécialement conçue comme intrusion informatique. Le code permet d’obtenir une réponse qui donne une idée précise de la structure de la base de données et autorise un accès complet à celle-ci.

Les attaques menées au moyen de SQLi peuvent varier selon le type de moteur de base de données, mais toutes les attaques SQLi reposent sur des instructions SQL dynamiques. Les injections SQLi et leurs variantes peuvent être difficiles à cerner.

Voici quelques variantes courantes de SQLi :

  • SQLi fondée sur les données saisies par l’utilisateur
  • SQLi fondée sur les cookies
  • SQLi fondée sur les en-têtes HTTP
  • SQLi de deuxième ordre

En savoir plus sur eSecurity Planet : Comment prévenir les attaques par injection SQL en 2021

Exemples d’attaques par injection SQL

Les attaques SQLi comptent parmi les techniques d’attaque les plus courantes, et les exemples ne manquent donc pas. Voici quelques tentatives célèbres utilisant SQLi.

Advertisement

En savoir plus sur CIO Insight : Les principales menaces de cybersécurité pour les entreprises

Types d’injections SQL

Les SQLi peuvent être classées selon les méthodes utilisées pour accéder aux données du backend et selon leur potentiel de nuisance. Les injections SQL sont généralement réparties en trois grandes catégories :

  • SQLi en bande (classique)
  • SQLi inférentielle (à l’aveugle)
  • SQLi hors bande

SQLi en bande (classique)

La SQLi en bande (classique) est l’un des types d’attaques SQLi les plus courants. L’attaquant utilise le même canal de communication pour lancer ses attaques et en recueillir les résultats. La SQLi en bande comporte deux sous-variantes.

  • SQLi fondée sur les erreurs : Cette technique s’appuie sur les messages d’erreur générés par le serveur de base de données pour recueillir des informations sur la structure de la base de données.
  • SQLi fondée sur UNION : Cette technique exploite l’opérateur SQL UNION pour combiner les résultats d’instructions SELECT et obtenir une réponse HTTP unique. L’attaquant peut ensuite exploiter les données contenues dans la réponse.

SQLi inférentielle (à l’aveugle)

La SQLi inférentielle (à l’aveugle) repose sur les réponses et les comportements du serveur ; son exécution est donc généralement plus lente, mais elle peut être plus dommageable. Un attaquant peut envoyer des charges utiles au serveur et observer ses réponses et son comportement afin de reconstituer la structure de la base de données. La SQLi inférentielle comporte deux sous-variantes.

  • SQLi fondée sur les booléens : L’attaquant envoie à la base de données une requête SQL qui force l’application à renvoyer un résultat. Selon ce résultat, les informations contenues dans la réponse HTTP seront modifiées ou non.
  • SQLi fondée sur le temps : Cette technique repose sur l’envoi d’une requête SQL qui force la base de données à attendre une durée déterminée, exprimée en secondes, avant de répondre. Le temps de réponse indiquera si le résultat de la requête est TRUE ou FALSE.
Advertisement

SQLi hors bande

C’est le type d’attaque SQLi le moins courant. La technique SQLi hors bande s’appuie sur le serveur de base de données pour effectuer des requêtes DNS ou HTTP et transmettre des données à un attaquant. Cette attaque se produit lorsqu’un attaquant ne peut pas utiliser le même canal pour lancer l’attaque et en recueillir les résultats. La SQLi hors bande constitue une solution de remplacement aux techniques inférentielles fondées sur le temps, en particulier lorsque les réponses d’un serveur sont instables.

La SQLi hors bande constitue une solution de remplacement aux techniques inférentielles fondées sur le temps, en particulier lorsque les réponses d’un serveur sont instables.

Chaque entreprise doit s’attacher à protéger ses informations précieuses contre les attaques SQLi. De nombreux outils de détection automatique sont disponibles pour tester ces vulnérabilités. Une approche en couches intégrant des stratégies centrées sur les données peut constituer la défense optimale contre les attaques SQLi : les données se concentrent sur leur propre protection, ainsi que sur celle des applications et du réseau.

À lire ensuite : Bonnes pratiques pour optimiser les performances SQL

Al Mahmud Al Mamun

Al Mahmud Al Mamun is a writer for TechnologyAdvice. He earned his BSc in Computer Science and Engineering from Prime University, Bangladesh. He attained more than twenty-five diploma courses and a hundred certificate courses. His expertise and research interests include Artificial Intelligence, Artificial Neural Networks, Convolutional Neural Networks, Intelligent Transportation Systems, Information Technology, Computer Vision, Psychology, and Astronomy.

ServerWatch Logo

ServerWatch is a top resource on servers. Explore the latest news, reviews and guides for server administrators now.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.