Ce que tu vas faire
Un secret est un mot de passe, une clé ou un jeton qui doit rester privé. Les développeurs les laissent souvent au mauvais endroit : écrits dans le code, envoyés au navigateur, ou donnés par une page de supervision. WrongSecrets est une application qui fait tout cela exprès, pour que tu apprennes à le repérer. Tu vas vérifier qu'elle tourne, regarder ce qu'elle donne à n'importe qui, et lire un script qu'elle envoie à chaque visiteur.
La seule règle
Attention
Ce lab fait tourner un site vulnérable volontairement. Attaque ce site, et rien d'autre. C'est ta copie privée, sans accès à Internet : personne d'autre ne peut être touché. Ne tente jamais ces choses sur un site qui n'est pas à toi : au Royaume-Uni, c'est une infraction pénale d'après 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 qu'il indique qu'il tourne. L'application s'ouvre avec le lien OWASP WrongSecrets 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 suivre, ou pour taper tes propres commandes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.
1. Vérifier que l’application tourne
Cette commande demande à l'application si elle va bien. Elle répond {"groups":["liveness","readiness"],"status":"UP"}, ce qui veut dire qu'elle est prête.
curl -s -w "\n" http://wrongsecrets:8080/actuator/healthAffiché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. Jouer le défi 0
Appuie sur le lien OWASP WrongSecrets de la barre du lab et choisis Challenge 0 dans le menu Challenges. Il explique le jeu et montre lui-même sa réponse : copie-la dans la case et appuie sur Submit, et la page affiche Your answer is correct! (« Ta réponse est correcte ! »). Essaie d'abord une réponse inventée : elle affiche Your answer is incorrect, try harder ;-) (« Ta réponse est fausse, fais plus d'efforts »). Les textes du site restent en anglais.
3. Voir ce qu’elle montre à tout le monde
Les applications ont souvent des pages pour les personnes qui les font fonctionner. Quiconque peut joindre l'application peut lui en demander la liste, et elle en nomme trois : auditevents, health et info (sort -u les met dans l'ordre et supprime le doublon, car la liste nomme health deux fois). Demande-toi laquelle des trois tu ne voudrais pas qu'un inconnu lise. Le Challenge 42 parle de l'une d'elles.
curl -s http://wrongsecrets:8080/actuator | grep -o 'actuator/[a-z]*' | sort -uAffiché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.
4. Lire le script que reçoit chaque visiteur
Certaines applications cachent un secret dans un script que le navigateur exécute. Celle-ci envoie à chaque visiteur un script appelé index.js. Ses premiers caractères sont brouillés exprès, donc il est difficile à lire, mais ton navigateur doit télécharger le script entier pour l'exécuter, et curl aussi. Un secret dont le navigateur a besoin est un secret que tout le monde a. Le Challenge 16 te demande d'y trouver le secret.
curl -s http://wrongsecrets:8080/js/index.js | head -n 1 | cut -c 1-120Affiché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.
5. Continuer
Essaie le Challenge 16 et le Challenge 42 dans le navigateur, et utilise les hints (indices) sous chaque défi quand tu bloques. Beaucoup de défis sont impossibles dans un lab, parce qu'ils demandent quelque chose que la copie du lab n'a pas (elle n'a pas d'accès à Internet) : passe-les et choisis-en un autre. Pour chaque secret que tu trouves, note où il était et où il aurait dû être gardé.
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. WrongSecrets propose des dizaines de défis sur le code, les conteneurs, la configuration et les journaux : le même lab peut donc servir pour toute une séquence. Rien n'est corrigé pour vous : demandez une capture d'écran de chaque défi réussi et une phrase sur l'endroit où le secret aurait dû être gardé. Copiez-la dans votre propre module et modifiez-la, ou construisez-en une de zéro avec le menu Lab du créateur de leçons.