OWASP WebGoat:Database Backdoors
Database Backdoors
Description
Lorsqu'une base de donnnées est corrompue, il est possible d'imaginer le pire : un attaquant peut par exemple créer un objet "trigger" (déclencheur) afin de récupérer en temps réel les logins et mot de passe dès leur insertion ou mise à jour dans la table des utilisateurs.
Stage 1
Il est proposé dans cet exercice d'injecter des requêtes SQL en exploitant la non-sécurisation du champ "User ID".
Le fonctionnement normal prévoit l'affichage des informations de l'utilisateur dont l'identifiant est fourni :
Une des possibilité d'exploiter le champ "User ID" est d'injecter la chaîne suivante afin de faire apparaître tous les enregistrements :
101 or 1=1
Ce qui fournit le résultat suivant :
En ajoutant un point virgule (;) après cette chaîne, il est possible d'exécuter une seconde requête. En entrant par exemple la chaîne "101; update employee set salary=0", on obtient le résultat suivant :
Stage 2
Il est maintenant demandé de développer un "backdoor" (porte dérobée). Celui-ci sera un "trigger" (déclencheur) qui enverra un email ([email protected]) à chaque nouvelle insertion dans la table "employee".
Pour ce faire, insérer la chaîne suivante :
101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='[email protected]'WHERE userid = NEW.userid
La leçon est terminée :