← Accueil StartHack
Start2Hack · Guide

L’injection SQL, expliquée aux débutants

Lecture : 5 minutes. Aucun prérequis.

L’injection SQL fait partie des failles web les plus connues. Elle apparaît quand un site fabrique une requête de base de données en collant ce que tape l’utilisateur. Ce guide montre le mécanisme, puis la parade.

1. Ce que fait une base de données

Un site stocke ses données (comptes, commandes, messages) dans une base. Il lui parle en SQL. Pour vérifier une connexion, il envoie par exemple :

SELECT * FROM clients WHERE nom = 'alice' AND code_acces = 'abc123';

La base répond par la ligne correspondante, ou par rien.

2. Où se glisse la faille

Le site ne connaît pas le nom à l’avance : il l’assemble à partir du formulaire. Voici le code fautif, en Python :

requete = "SELECT * FROM clients WHERE nom = '" + nom + "'"

Le texte saisi est collé tel quel dans la requête. La base ne distingue plus la requête de la donnée : tout ce qui est tapé peut devenir du SQL.

3. Le principe de l’injection

Si quelqu’un saisit x' OR '1'='1 comme nom, la requête devient :

SELECT * FROM clients WHERE nom = 'x' OR '1'='1'

La condition '1'='1' est toujours vraie : la base renvoie toutes les lignes. Le visiteur a modifié le sens de la requête avec une simple apostrophe. Selon la faille, les conséquences vont de la lecture de données privées à la modification ou à la suppression de tables.

4. Comment s’en protéger

La même requête, corrigée avec un paramètre :

curseur.execute("SELECT * FROM clients WHERE nom = ?", (nom,))

Ici, x' OR '1'='1 est cherché comme un nom, et personne ne porte ce nom : la base ne renvoie rien.

5. S’entraîner sans risque

Ces techniques s’exercent uniquement sur les labs fournis par une plateforme d’entraînement, ou sur un système dont tu es propriétaire. Les tester sur un site qui n’est pas le tien, sans autorisation, est un délit.

Sur Start2Hack, tu apprends ce mécanisme en menant l’enquête : un cours guidé, puis des défis dans un environnement prévu pour ça, avec un agent IA qui te met sur la piste sans te donner la réponse.

Rejoindre la bêta gratuite · Questions fréquentes

Accueil

Conditions d'utilisation

Mentions légales