OWASP WebGoat:Denial of Service from Multiple Logins

From aldeid
Jump to navigation Jump to search

Denial of Service from Multiple Logins

Le déni de service est une attaque relativement répandue sur le Web. Cette attaque consiste à saturer un service sur un serveur, afin d'en prendre le contrôle. L'exemple qui suit est composé de deux parties :

  • Découverte et exploitation d'une faille liée à l'injection SQL
  • Réalisation d'un déni de service (simulation)

Injection SQL

L'objectif de cette étape est d'exploiter la non protection des champs du formulaire afin de réaliser une injection SQL. Pour ce faire, il suffit d'observer comment la requête est construite (entrez "monlogin" et "monmotdepasse" respectivement dans les champs "User Name" et "Password") :

SELECT * FROM user_system_data WHERE user_name = 'monlogin' and password = 'monmotdepasse'

Pour que la requête autorise l'authentification, il faut que les deux conditions (user_name et password) soient vérifiées. Si la requête était du type suivant, il suffirait que cond3 soit vérifiée pour que la requête renvoie des enregistrements.

SELECT * FROM table WHERE (cond1 AND cond2) OR (cond3)

L'injection SQL se base sur ce constat pour créer une troisième condition qui sera toujours vérifiée (par exemple 1=1). Pour vérifier cette hypothèse, tentons de modifier la requête afin qu'elle ressemble à :

SELECT * FROM user_system_data WHERE user_name = 'monlogin' and password = 'monmotdepasse' OR '1'='1'

Pour ce faire, saisir les informations suivantes :

  • User Name : hack
  • Password: monmotdepasse' OR '1'='1

Comme vous pouvez le constater, la requête fait apparaître tous les enregistrements :

Déni de service

Il est maintenant demandé d'exploiter un déni de service. Il est précisé que le pool de connexions autorisées (dans le cadre de cet exercice) est de deux connexions simultannées. Il suffit donc d'ouvrir 3 fenêtres, pointant toutes sur l'adresse de l'exercice, et de se connecter avec une des combinaisons précédemment récupérées dans chacune des fenêtres.