Bienvenue dans la Sandbox !


      Retour à la liste des mises en situation.
1) Dans la partie Administrateur, cliquez sur le bouton "Bannir Toto".
Toto est donc bien banni car vous êtes "Administrateur". Cliquez ensuite sur Actualiser la page pour cette fois exploiter la faille.

2) Dans la partie Utilisateur, on va maintenant simuler l'envoi d'un message piégé à l'Administrateur.
Cliquez sur "Envoyer une URL piégée à l'administrateur".
Le lien est :
https://www.leblogduhacker.fr/sandbox/exclu-vaccin-sida.php

qui redirige tout simplement vers :
https://www.leblogduhacker.fr/sandbox/csrf.php?nom=toto&submitb=Bannir+Toto

Le lien est habituellement attirant (ici par exemple : vaccin sida) pour que l'Administrateur clique.

3) Dans la partie Administrateur, cliquez sur le lien envoyé par l'Utilisateur, vous venez de bannir Toto sans le vouloir car vous avez exécuté la même commande que celle du bouton Bannir.
Partie Administrateur Partie Utilisateur
Cette partie est visible par un administrateur uniquement.
Voici une commande disponible pour l'administrateur:


Et voici la liste des membres fictifs :
  • Toto
  • Titi
  • NomInnovant


Cette partie est visible par un utilisateur normal du site.
Et voici la liste des membres fictifs :
  • Toto
  • Titi
  • NomInnovant



Explications et contre-mesures

La faille CSRF est redoutable et très peu connue.
Elle demande à celui qui l'exploite de connaître les liens utilisés par la victime.
Mais de nos jours presque tous les sites web utilisent des Systèmes de Gestion de Contenu qui sont open source. On peut donc connaître les liens des administrateurs.
Il est donc facile d'identifier des URLs faillibles et il y en a énormément !
Pour se protéger de cette attaque, il faut utiliser des jetons qui seront envoyés en plus des autres paramètres.
Ces jetons à usage unique permettent de vérifier les actions et rendent impossible le fait de prédire une URL.
Par exemple, ici il aurait fallu que le bouton Bannir Toto exécute une commande comme :
http://www.leblogduhacker.fr/sandbox/csrf.php?nom=toto&submitb=Bannir+Toto&jeton=44df54d8bdcd78
avec 44df54d8bdcd78 un exemple de numéro généré au hasard, impossible à deviner à l'avance et qui sera vérifié avant de bannir Toto.
Plus d'informations.