Bypass de SameSite=Lax via rafraîchissement de cookie

La fonction de modification d’e-mail de l’application est vulnérable à une attaque CSRF. L’objectif du lab est de forcer le changement d’adresse e-mail d’un utilisateur victime en hébergeant la démonstration sur l’exploit server fourni.

Le laboratoire supporte l’authentification OAuth via un fournisseur externe. On peut se connecter avec l’identifiant fourni (wiener:peter). Lors du processus d’authentification, une page de domaine différent est utilisée pour l’identification OAuth.

You have successfully logged in with your social media account

  • Après connexion via le fournisseur social, la réponse contient un cookie d’authentification dont l’attribut SameSite est réglé sur Lax.

Si l’on se déconnecte puis que l’on relance le flux d’authentification sans retaper le mot de passe, la session est réétablie : un nouveau cookie de session est émis.

  • → En pratique, cela signifie que si un utilisateur a cliqué sur « logout », il devra à nouveau cliquer sur « login » pour être redirigé vers le site et récupérer la nouvelle cookie de session.

  • Grâce à ce comportement de « rafraîchissement » de cookie pendant l’authentification via le domaine tiers, il est possible d’envisager une séquence où une requête initiale vers la page d’authentification permet de récupérer/établir la cookie de session, puis une seconde action (côté client) déclenche la requête qui modifie l’e-mail dans le compte de l’utilisateur.

Mis à jour

Ce contenu vous a-t-il été utile ?