Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les bases de DVWA

La leçon complète est à lire ici. Créez un compte gratuit pour la pratiquer dans un labo en direct.

Labo de conteneurs5 min de lecture1 commande

Ce que tu vas faire

Un site web demande des informations à une base de données avec une question écrite dans un langage appelé SQL. Si le site colle ce que tu tapes directement dans cette question, tu peux changer la question. Cela s’appelle une injection SQL, et c’est l’une des faiblesses les plus courantes du web. DVWA te permet de le faire sans danger, puis te montre la correction.

La seule règle

Attention

Ce lab fait tourner un site web volontairement vulnérable. Attaque-le, et rien d’autre. C’est ta copie privée, sans aucun accès à Internet, donc personne d’autre ne peut être touché. N’essaie jamais ces choses sur un site qui n’est pas le tien : au Royaume-Uni, c’est une infraction pénale selon le Computer Misuse Act 1990.

Avant de commencer

Remarque

Appuie sur Démarrer le lab dans la barre en haut de cette leçon et attends que la barre indique que le lab tourne. Le site s’ouvre depuis le lien DVWA de la barre. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de ton lab, l’une après l’autre, dans la même session. Pour les voir passer, ou pour taper tes propres commandes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.

1. Vérifie que le site tourne

La barre du lab dit que le lab tourne. Vérifie maintenant le site : cette commande demande sa page de connexion depuis ton terminal, et 200 veut dire qu’il a répondu.

Commande
curl -s -o /dev/null -w "%{http_code}\n" http://dvwa/login.php

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

2. Connecte-toi

Appuie sur le lien DVWA de la barre du lab et connecte-toi avec l’identifiant admin et le mot de passe password. Dans le menu de gauche, choisis DVWA Security et vérifie qu’il indique low.

3. Pose une question normale

Dans le menu, choisis SQL Injection. Tape 1 dans la zone User ID et appuie sur Submit. Le site répond avec un seul utilisateur : admin. Avec ce que tu as tapé, il a construit une question du genre « donne-moi l’utilisateur dont l’ID est 1 ».

4. Change la question

Maintenant, tape ceci dans la même zone et appuie sur Submit :

1' OR '1'='1

L’apostrophe ' a terminé trop tôt la question du site, et OR '1'='1 a ajouté une condition toujours vraie. Il répond maintenant avec tous les utilisateurs : admin, Gordon, Hack, Pablo et Bob. Tu en as demandé un et tu les as tous eus, parce que le site a fait confiance à ce que tu as tapé.

5. Lis le code

Appuie sur View Source en bas de la page. Au niveau low, le code met ton texte directement dans la question. C’est l’erreur.

6. Découvre la correction

Choisis DVWA Security, mets le niveau sur impossible et appuie sur Submit. Retourne dans SQL Injection et tape 1 : il répond toujours avec admin. Tape maintenant la ligne de l’étape 4 : il ne répond avec aucun utilisateur. Appuie à nouveau sur View Source. Le code vérifie que l’ID est un nombre. Il envoie la question et ton texte séparément, donc ton texte ne peut être qu’une valeur, jamais une partie de la question. Cela s’appelle une requête paramétrée, et c’est ainsi qu’un site se protège de cette attaque.

Pour les enseignants

Astuce

Cette leçon est un petit exemple de leçon à faire dans un lab : les étapes et les boutons Exécuter forment la leçon, et le lab est la copie personnelle de chaque élève. DVWA propose dix autres exercices aux mêmes quatre niveaux, donc le même lab peut servir toute une séquence de cours. Rien n’est noté à votre place : demandez une capture d’écran de chaque exercice au niveau low et au niveau impossible, et une phrase sur ce qui a changé. Copiez cette leçon dans votre propre module et modifiez-la, ou créez-en une à partir de zéro avec le menu Lab du créateur de leçons.

À propos de ce labo et de sa source: Lab DVWA : s’exercer à l’injection SQL et au XSS sur la Damn Vulnerable Web Application

Vous enseignez à une classe ? Proposez ces leçons à vos élèves avec correction et un labo pour chaque élève.