Ce que tu vas faire
Tu vas faire du cross-site scripting (XSS) sur DVWA au niveau low, lire le code qui le permet, puis voir la même tentative ne rien faire au niveau impossible. Un site qui met dans sa page ce que tu tapes, sans le rendre inoffensif, te laisse ajouter ton propre HTML, et avec lui ton propre programme.
La seule règle
Attention
Ce lab fait tourner un site web fragile exprès. Attaque celui-là, et rien d’autre. C’est ta copie privée, sans accès à internet, donc personne d’autre ne peut être touché. N’essaie jamais ces attaques sur un site qui n’est pas le tien : au Royaume-Uni, c’est un délit selon le Computer Misuse Act 1990.
Avant de commencer
Remarque
Appuie sur Démarrer le lab dans la barre en haut de la leçon et attends qu’elle indique que le lab tourne. Le site s’ouvre avec 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 les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
1. Vérifier que le site tourne
200 veut dire que la page de connexion a répondu depuis ton terminal.
curl -s -o /dev/null -w "%{http_code}\n" http://dvwa/login.phpAffiché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. Se connecter et ouvrir l’exercice
Appuie sur le lien DVWA de la barre du lab et connecte-toi avec admin et le mot de passe password. Dans DVWA Security, vérifie que le niveau est low. Puis choisis XSS (Reflected) dans le menu. L’exercice te demande ton prénom et te dit bonjour.
3. Ajouter ton propre HTML
Tape <b>hi</b> comme prénom et appuie sur Submit. Il n’écrit pas « Hello <b>hi</b> » avec les balises visibles : il écrit Hello puis un hi en gras. Le site a pris tes balises pour une partie de sa page.
Tape maintenant <script>alert(1)</script>. Le navigateur l’exécute : une boîte affiche 1. Un attaquant mettrait quelque chose de pire dans un lien et l’enverrait à quelqu’un.
4. Lire le code, puis voir la parade
Appuie sur View Source. Au niveau low, le code met ton texte directement dans la page. Passe maintenant DVWA Security sur impossible, retourne à XSS (Reflected) et tape de nouveau <b>hi</b> : la page montre les balises comme du texte simple, <b>hi</b>, et rien ne s’exécute. View Source montre pourquoi : le code rend d’abord ton texte inoffensif avec htmlspecialchars. Cette fonction change < en <, que le navigateur affiche comme < à l’écran sans jamais le lire comme le début d’une balise.
Pour les enseignants
Astuce
Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie personnelle de chaque élève. C’est le même lab que « Les bases de DVWA ». Le même exercice au niveau low et au niveau impossible, c’est le même code, fragile puis corrigé : c’est ce qui rend DVWA utile pour les séquences de programmation sécurisée. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.