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 2 : le cross-site scripting

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

Labo de conteneurs4 min de lecture1 commande

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.

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. 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 &lt;, 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.

Plus dans ce labo

À 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.