Aller au contenu
uencoder

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' --
    Output
    Bypasses password verification

    Comments out the password condition

Erreurs courantes

Building SQL with string concatenation
Always use parameterized queries

Termes associés

Outils associés

References