OWASP WebGoat:Database Backdoors

From aldeid
Jump to navigation Jump to search
This article needs to be translated
This article has been copied from the old wiki and is in french. It needs to be translated into english. If you wish to participate, please send a mail to (click to reveal email)

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 :