Que se cache-t-il derrière les termes de « SQL injection » ? Le langage SQL, Structured Query Language, est le langage standardisé d'interrogation des bases de données. Les techniques d'injection SQL consistent à introduire du code supplémentaire dans une requête SQL. Elles permettent à un utilisateur malveillant de récupérer des données de manière illégitime ou de prendre le contrôle du système. Alors que les problèmes de sécurité réseau ou système sont plutôt bien connus, que les règles de filtrage réseau sont plus strictes que par le passé, que l'application rapide des correctifs de sécurité pallie les vulnérabilités système, la sécurité des applicatifs est souvent négligée. Le contexte des injections SQL est très varié. Il concerne toutes les applications utilisant une base SQL. On retrouve aussi bien les applications Web que les clients lourds. Identifier et exploiter une faille peut être assez simple si l'application retourne des messages d'erreurs spécifiques, mais peut être complexe en l'absence de message. On parle alors d'exploitation en aveugle. Enfin, on retrouve des applications n'effectuant aucun contrôle ou très peu sur les données entrées tandis que d'autres les filtrent efficacement. C'est un aperçu de cette richesse que va tenter de vous donner cet article.
1. Principe
Commençons tout de suite par regarder comment fonctionne une requête SQL. Dans cet exemple, l'utilisateur fournit à l'application un compte et un mot de passe. Si ceux-ci correspondent, il est authentifié et peut utiliser l'application.
Après saisie des informations, christophe et sesame, la requête SQL devient :
Les données entrées par l'utilisateur influent directement sur la requête et donc sur le résultat de celle-ci. Si aucun enregistrement n'est trouvé, c'est que soit le nom d'utilisateur, soit le mot de passe est incorrect. Pour être identifié dans cette application, il faut que la requête...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première