Organisateurs : Restoy Esteban, Janvier Victor, Coutard Antoine et Demourgues Lise. Le cours est disponible ici : https://xsslearner.herokuapp.com/
Prérequis :
- git
- firefox
- heroku https://devcenter.heroku.com/articles/heroku-cli
Pour réaliser ce tp, il vous est demandé de forker ce repository dans votre espace github.
C'est dans ce nouveau repo que vous travaillerez.
C'est également le lien de ce nouveau repo que vous devrez nous renvoyer pour être corrigé.
Merci de bien penser à laisser le repo en public sinon nous ne pourrons vous corriger.
Merci de renommer le projet comme suit : xss-csrf-nom-prenom
Ce repository est composé :
- d'un README, votre guideline et sujet de TP.
- d'un dossier csrf
Tout au long du TP, des questions vous seront posées, merci de créer un markdown comme suit :
touch reponses-nom-prenom.md
Rendez-vous sur l'application suivante https://xss-csrf-tp.herokuapp.com/ et créez vous un compte. Pour se créer un compte : entrez juste un user, votre prenom de preference.
Commencez par le niveau 1 :
- Essayer d'injecter du code sans passer par un formulaire. 2 point
- Injecter dans le formulaire de creation d'article (a droite) un script permettant d'afficher une alerte. 1 point
- Pourquoi la balise script ne fonctionne pas ? 2 points
- Comment les donnes en base sont récupérées sur la page 1 point
- Essayer de faire une Injection XSS qui bloque totalement le bon fonctionnement du site ils y a plusieurs réponse possible. 3 points
- Essayer de récupérer la session de l'utilisateur via une injection xss et de les envoyer sur heroku la faille est vraiment visible essayer de le faire de facon invisible 2 points (Ecrire dans le compte rendu le script injecté)
- Rusez pour bypass le sanitizer 2 points
Trouvez un binôme de travail. Vous allez respectivement vous attaquer l'un l'autre.
cd csrf
git init
git add .
git commit -m “deploying on heroku”
heroku login
heroku apps:create my-malicious-website-<nom> // exemple my-malicious-website-restoy
git push heroku main
Demandez a votre binôme de créer un article sur l'application (cf. level 1)
- Avoir un site heroku fonctionnel. 2 points
- Monter une attaque CSRF grâce à un formulaire. hint : https://xss-csrf-tp.herokuapp.com/articles/delete 2 points
- Avoir une redirection visible c'est pas très "propre" comme attaque. Faites donc en sorte de masquer cette attaque pour qu'elle soit invisible à l'utilisateur. 3 points
Bonus : si notre application est une API REST avec serialisation JSON. Donner le code du formulaire permettant d'envoyer un petit objet JSON comme suit :
{ "account": 4 }