SQL est utilisé pour la gestion de base de données. Il permet l'interconnexion d'une page web avec une base de données à l'aide de scripts.
Ce chapitre va présenter une attaque très connue contre les serveurs SQL appelée SQL-Injection.
Une requête SQL passe par plusieurs étapes avant d'aboutir.
Les données sont envoyées par le client par l'intermédiaire d'un script sur le serveur web. Il s'ensuit une connexion au serveur SQL, puis l'envoi des données de la requête du client. La rêquete est exécutée par le serveur SQL. La réponse est reçue par le client et est affichée sous la forme d'une page web.
L'attaque par SQL-Injection consiste à injecter des caractères spéciaux ou des chaînes de caractères particulières dans les rêquetes SQL du client. Ces caractères peuvent être interprétés par le serveur SQL comme des commandes permettant d'obtenir un accès sans mot de passe, de récupérer des fichiers, etc..
Pour bien sécuriser votre serveur SQL, vérifiez que tous les comptes possèdent un mot de passe. Sur certaines versions de serveur, les comptes administrateur ou de certains utilisateurs peuvent être accessibles sans mot de passe après une installation.
Se protéger du SQL-Injection n'est pas toujours aisé, il faut surtout être attentif à la programmation des scripts et aux fonctions utilisées.
La technique du "SQL Injection" décrite par son inventeur : How I hacked PacketStorm