|
Injection de commandes SQL
Injection de commandes SQL
Les attaques par injection de commandes SQL sont des attaques visant les sites
web s'appuyant sur des bases de données relationnelles.
Dans ce type de sites, des paramètres sont passés à la base de données sous
forme d'une requête SQL. Ainsi, si le concepteur n'effectue aucun contrôle sur
les paramètres passés dans la requête SQL, il est possible à un pirate de
modifier la requête afin d'accéder à l'ensemble de la base de données, voire à
en modifier le contenu.
En effet, certains caractères permettent d'enchaîner plusieurs requêtes SQL ou
bien ignorer la suite de la requête. Ainsi, en insérant ce type de caractères
dans la requête, un pirate peut potentiellement exécuter la requête de son
choix.
Soit la requête suivante, attendant comme paramètre un nom d'utilisateur :
SELECT * FROM utilisateurs WHERE nom="$nom";
Il suffit à un pirate de saisir un nom tel que « toto" OR 1=1 OR nom ="titi »
pour que la requête devienne la suivante :
SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";
Ainsi, avec la requête ci-dessus, la clause WHERE est toujours réalisée, ce qui
signifie qu'il retournera les enregistrements correspondant à tous les
utilisateurs.
Procédures stockées
De plus, certains systèmes de gestion de bases de données tel que Microsoft SQL
Server possèdent des procédures stockées permettant de lancer des commandes
d'administration. Ces procédures stockées sont potentiellement dangereuses dans
la mesure où elles peuvent permettre à un utilisateur malintentionné d'exécuter
des commandes du système, pouvant conduire à une éventuelle intrusion.
Parades
Un certain nombre de règles permettent de se prémunir des attaques par injection
de commandes SQL :
* Vérifier le format des données saisies et notamment la présence de caractères
spéciaux ;
* Ne pas afficher de messages d'erreur explicites affichant la requête ou une
partie de la requête SQL.
* Supprimer les comptes utilisateurs non utilisées, notamment les comptes par
défaut ;
* Eviter les comptes sans mot de passe ;
* Restreindre au minimum les privilèges des comptes utilisés ;
* Supprimer les procédures stockées ;
Licence Creative
Common
Ce document intitulé
« Attaques - Vol de session TCP » issu de
Comment Ça Marche,
l'encyclopédie informatique, est mis à disposition sous les termes de la
licence Creative Commons. Vous pouvez copier, modifier des copies de cette
page, dans les conditions fixées par la licence, tant que cette note apparaît
clairement.
|