Ce que tu vas faire
Dans « Les bases de Juice Shop », tu as trouvé des choses qu’une boutique n’aurait pas dû montrer. Ici, tu en trouves une de plus, puis tu essaies la faille la plus connue du web : le cross-site scripting, ou XSS. Elle apparaît quand un site met dans sa page ce que tu tapes, sans le rendre inoffensif. Ce que tu as tapé s’exécute alors comme une partie de la page.
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. La boutique s’ouvre avec le lien OWASP Juice Shop 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. Trouver une page faite pour le propriétaire
Beaucoup de programmes publient des chiffres sur eux-mêmes pour que leurs propriétaires les surveillent. Juice Shop le fait à l’adresse /metrics, sans demander qui regarde. 200 veut dire que la page a répondu à n’importe qui. Dans le Score Board, Exposed Metrics passe au vert.
curl -s -o /dev/null -w "%{http_code}\n" http://juice-shop:3000/metricsAffiché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. Essayer le cross-site scripting
Ouvre la boutique depuis la barre du lab. Clique sur la loupe en haut et tape ceci exactement dans la zone de recherche, puis appuie sur Entrée. Les signes autour de xss sont des accents graves (backticks), pas des guillemets (sur un clavier AZERTY de PC, AltGr + 7) :
<iframe src="javascript:alert(`xss`)">
La boutique n’a pas rendu ton texte inoffensif avant d’afficher les résultats. Le navigateur l’a donc lu comme une partie de la page et l’a exécuté : une boîte affiche xss. Appuie sur OK.
3. Vérifier le Score Board
Ouvre de nouveau le Score Board (/#/score-board). DOM XSS est maintenant vert, à côté de Exposed Metrics.
La parade consiste à traiter tout ce qu’un visiteur tape comme du texte, jamais comme une partie de la page. C’est ce que montre « Les bases de DVWA 2 », vu de l’autre côté.
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. Le XSS est l’exemple que reprend chaque séquence de sécurité web, et l’élève le voit s’exécuter dans un lab sans accès extérieur : personne d’autre ne peut être touché. Demandez une capture d’écran du Score Board et une phrase sur ce que la boutique aurait dû faire. 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.