Injection SQL

L'injection SQL est une faille de sécurité Web qui permet à un attaquant de manipuler des requêtes SQL mal protégées.

Qu’est-ce que l’injection SQL ?

L’injection SQL est une faille de sécurité informatique. Elle permet à un attaquant d’interagir directement avec une base de données via une application mal sécurisée.

Elle consiste à insérer du code SQL malveillant dans un champ de saisie (formulaire, URL, etc.). Si l’application ne vérifie pas correctement cette entrée, ce code est exécuté par le serveur.

Cela peut permettre de consulter, modifier ou supprimer des données sensibles.

À quoi sert l’injection SQL ?

L’injection SQL est utilisée dans le cadre de cyberattaques. Elle cible les systèmes qui utilisent des bases de données relationnelles, comme MySQL, PostgreSQL ou SQL Server.

Elle permet à un pirate d’accéder à des informations normalement protégées : mots de passe, données clients, informations internes.

Dans le cadre d’un test de sécurité (pentest), elle peut être simulée pour identifier des faiblesses et corriger une application avant qu’un attaquant ne les exploite.

Comment fonctionne l’injection SQL ?

Une base de données fonctionne avec un langage appelé SQL (Structured Query Language). Il permet de lire, insérer, modifier ou supprimer des données.

Lorsqu’un utilisateur remplit un champ (par exemple, un nom d’utilisateur), l'application formate une requête SQL. Exemple : SELECT * FROM utilisateurs WHERE nom = 'dupont'.

Si le champ n’est pas correctement vérifié, un pirate peut saisir du code à la place d’une valeur. Par exemple : ' OR '1'='1.

Cela transforme la requête initiale en : SELECT * FROM utilisateurs WHERE nom = '' OR '1'='1'. Cette condition est toujours vraie, donc l’accès est accordé à tort.

Différences avec des notions proches

L’injection SQL est une forme d’injection de code. D’autres types existent, comme l’injection de commande (command injection) ou l’injection de scripts (XSS).

Chacune de ces attaques cible une couche différente d’une application. L’injection SQL attaque la base de données. L’injection de scripts, elle, vise le navigateur de l’utilisateur.

Il ne faut pas confondre "injection SQL" avec "erreur de requête SQL" : l’une est une attaque, l’autre une erreur technique.

Exemples ou cas d’usage concrets

Un site de commerce mal protégé permet à un attaquant de voir tous les paniers en cours. Il modifie l’URL d’un produit avec une requête SQL pour accéder aux réductions d’un autre client.

Un formulaire de connexion accepte du code en entrée. Le pirate entre ' OR '1'='1 dans le champ mot de passe et contourne l’authentification.

Une entreprise laisse un outil interne accessible sans vérification. Un employé malveillant utilise une injection SQL pour extraire la liste des salaires via une barre de recherche mal filtrée.

Ces cas montrent que l’injection SQL est une menace réelle pour les organisations. Elle cible les applications web mal sécurisées, quelle que soit leur taille.

FAQ

Vous avez une question ? Obtenez une réponse !

Qu'est-ce qu'une injection SQL en informatique ?

Une injection SQL est une technique utilisée pour insérer du code SQL malveillant dans une requête. Elle vise à accéder à des données non autorisées.

Comment une injection SQL fonctionne-t-elle ?

Elle exploite une faille dans la validation des entrées utilisateur. Si ces données ne sont pas correctement filtrées, l’attaquant peut modifier la requête SQL exécutée par l’application.

Quels sont les risques d’une injection SQL ?

Cela peut entraîner le vol, la modification ou la suppression de données sensibles. Dans certains cas, l'accès complet au système peut être obtenu.

Comment prévenir les attaques par injection SQL ?

Il faut utiliser des requêtes préparées, échapper correctement les entrées utilisateur et appliquer une validation stricte des données côté serveur.

Articles similaires