SQL Injection
L'injection SQL consiste pour un attaquant à insérer des fragments SQL malveillants dans une chaîne de requête afin que la base exécute des commandes non voulues.
Objectif
Empêcher les attaquants de manipuler les requêtes SQL via les entrées, voler ou falsifier la base de données.
Mécanisme
Quand l'entrée utilisateur est concaténée directement dans la chaîne SQL (p. ex., « SELECT * WHERE name=' »+input+« ' »), saisir ' OR 1=1 -- contourne la condition. Défenses : requêtes paramétrées (prepared statements), ORM, validation d'entrée, comptes au moindre privilège.
Cas d’usage
- Contournement de login (' OR 1=1)
- Fuite de données (UNION SELECT)
- Falsification de données (UPDATE/DELETE)
- Exécution de commandes (xp_cmdshell)
Exemples
- entrée
admin' --OutputBypasses password verificationComments out the password condition
Erreurs courantes
- Building SQL with string concatenation
- Always use parameterized queries
Termes associés
XSS
XSS (cross-site scripting) est l'attaque où l'attaquant injecte des scripts malveillants dans une page qui s'exécutent dans le navigateur d'autres utilisateurs ; il existe sous formes stockée, réfléchie et basée DOM. GLOSSAIRE
CSRF
CSRF (cross-site request forgery) est une vulnérabilité où l'attaquant trompe un utilisateur connecté pour lui faire envoyer sans le savoir une requête malveillante au site ciblé. GLOSSAIRE
SQL
SQL (Structured Query Language) est le langage de requête standard des bases de données relationnelles, définissant et manipulant les données de façon déclarative (DDL/DML/DQL/DCL). GLOSSAIRE