Un regard approfondi sur la SQLi
L'injection SQL (SQLi) reste l'une des attaques d'applications web les plus graves et courantes. Elle cible l'interaction entre le niveau application et le niveau données.
Injection SQL aveugle (Blind SQLi)
Parfois, le serveur n'affiche pas d'erreur de base de données (un indicateur normal de SQLi). C'est ce qu'on appelle la Blind SQLi.
- Méthode : L'attaquant déduit des informations en envoyant des requêtes qui modifient la réponse du serveur de manière infime et mesurable (ex : un délai d'une seconde, ou une mise en page légèrement différente).
- Outils : Des outils comme sqlmap (outil Kali) automatisent la SQLi aveugle, la rendant pratique malgré la lenteur du processus de récupération octet par octet.
Défense : Requêtes paramétrées
La seule défense fiable contre la SQLi est d'utiliser des Requêtes paramétrées (ou requêtes préparées).
- La structure SQL est envoyée à la base de données avant l'entrée utilisateur.
- La base de données traite l'entrée utilisateur comme une donnée pure, pas comme du code exécutable, empêchant ainsi la syntaxe malveillante de s'exécuter.