Commencer gratuitement
KZero Staff / 2 min de lecture / 19 oct. 2023

Injection SQL

L'injection SQL désigne l'exploitation d'une vulnérabilité dans les bases de données relationnelles qui utilisent le langage SQL pour l'insertion de données. Avec une injection SQL, un pirate tire parti des entrées utilisateur de la base de données qui ne sont pas correctement indexées ainsi que de métacaractères comme les doubles tirets, les guillemets, les éléments entre guillemets et les points-virgules. Ces caractères ont en effet des fonctions spéciales pour l'interpréteur SQL et permettent une modification externe des commandes exécutées. L'injection SQL se produit souvent avec des programmes PHP et ASP dotés d'interfaces anciennes. En effet, les entrées ne sont parfois pas filtrées de la bonne manière et finissent par constituer la cible parfaite pour une attaque de pirate.

Grâce à l'utilisation ciblée de caractères fonctionnels, un utilisateur non autorisé peut injecter d'autres commandes SQL et manipuler les enregistrements de façon à ce qu'ils puissent être modifiés, lus ou supprimés. Dans les cas les plus critiques, il est même possible pour le pirate d'accéder à la ligne de commande du système et ainsi d'accéder à l'ensemble du serveur de base de données en exploitant cette méthode.

En théorie, chaque site Web et chaque application Web risque d'être la cible d'une injection SQL — du moment que SQL est le langage utilisé pour la base de données. Très souvent, les développeurs des programmes qui communiquent avec la base de données ne prêtent pas suffisamment attention à l'aspect sécurité et la rendent vulnérable aux attaques par injection SQL. Nous savons que les vulnérabilités découvertes ne restent pas longtemps secrètes sur Internet. Il existe des pages qui nous informent des vulnérabilités actuelles et qui révèlent aussi aux cybercriminels comment trouver les sites touchés par ces vulnérabilités.

Parmi les exemples les plus courants d'attaques par injection SQL, on trouve :

  • La récupération de données cachées : la requête SQL est ici modifiée pour retourner des résultats supplémentaires.
  • Le détournement de la logique applicative : la requête est modifiée afin d'interférer avec la logique de l'application.
  • Les attaques UNION : dans ce cas, les données sont extraites de différentes tables de la base de données à l'aide de plusieurs requêtes et les résultats sont combinés.
  • Les attaques par déni de service : le serveur de base de données est surchargé de requêtes de sorte que les demandes et requêtes normales ne sont pas traitées dans un délai raisonnable.
L'équipe KZero



Explorez d'autres contenus instructifs rédigés par l'équipe chevronnée de KZero dans les sections blogue et guides de notre site.