3- L'injection
Dans le contexte de la sécurité informatique, c'est un type d’attaque qui consiste à insérer du code malveillant dans une requête ou une commande destinée à un système. Le but est d’exploiter une faille de sécurité dans l’application ou la base de données et d’accéder à des informations sensibles, de modifier ou de détruire des données, ou de prendre le contrôle du système.
L’injection la plus connue est l’injection SQL, qui cible les bases de données relationnelles utilisant le langage SQL3.
Pour se protéger des injections
- Valider et filtrer les entrées des utilisateurs
- Utiliser des requêtes paramétrées
- Limiter les privilèges des comptes
- Mettre à jour les logiciels.
Exemples avec des injections SQL
http://www.exemple.com/article.php?id=1' OR 1=1 --
Dans cet exemple, l’attaquant ajoute à la fin de l’URL une condition qui est toujours vraie (1=1) et un commentaire (--) qui annule le reste de la requête. Ainsi, il peut afficher tous les articles de la base de données au lieu du seul article demand. Ce type d’injection SQL est appelé error-based car il provoque une erreur dans la requête originale.
http://www.exemple.com/article.php?id=1; DROP TABLE articles; --
Dans cet exemple, l’attaquant ajoute à la fin de l’URL une instruction qui supprime la table articles de la base de données et un commentaire (--) qui annule le reste de la requête. Ce type d’injection SQL est appelé multi-stacked car il exécute plusieurs requêtes à la suite. Toutefois, ce type d’injection n’est pas toujours possible car certaines bases de données ne permettent pas d’exécuter plusieurs requêtes dans une seule chaîne.
http://www.exemple.com/login.php?username=admin' UNION SELECT password, NULL FROM users; --&password=
Dans cet exemple, l’attaquant ajoute à la fin de l’URL une instruction qui combine les résultats de deux requêtes (UNION SELECT) et qui sélectionne le mot de passe de la table users. Il ajoute également un commentaire (--) qui annule le reste de la requête. Ce type d’injection SQL est appelé union-based car il utilise l’opérateur UNION pour fusionner les données. Ainsi, il peut afficher le mot de passe de l’administrateur sur la page web.