SameSite Strict — contournement via redirection côté client

SameSite Strict bypass via client-side redirect

Le formulaire change email du labo est vulnérable au CSRF. L’objectif est de provoquer le changement de l’adresse e-mail de la victime en hébergeant l’exploit sur l’exploit server fourni.

Accès de test Compte utilisé dans le labo : wiener:peter

Observations principales

  1. La fonctionnalité de changement d’e-mail fonctionne via une requête GET de ce type :

En envoyant une redirection JavaScript comme :

  • la page demande de s’authentifier si l’utilisateur n’est pas connecté — la requête n’embarque pas la cookie de session lorsqu’elle provient d’un autre site.

L’en-tête Set-Cookie contient SameSite=Strict, ce qui empêche l’envoi de la cookie de session lors de navigations initiées depuis un autre contexte (cross-site), bloquant normalement les attaques par redirection classiques.

Zone exploitée (commentaires → confirmation → redirection)

  1. Il existe une zone de commentaires qui redirige ensuite vers :

Un script sur la page de confirmation extrait le paramètre postId et redirige après 3 secondes vers le post correspondant :

En observant ce comportement, on note que le postId n’est pas contraint strictement : si on modifie sa valeur (par ex. test), la redirection se fait vers .../test sans validation apparente.

Contournement du SameSite Strict via chemin manipulé

Idée : remplacer la redirection vers blogPath + '/' + postId par un postId contenant des segments relatifs .. pour atteindre un chemin du site cible (back-directory), par exemple :

/post/comment/confirmation?postId=../my-account

  • la redirection mène alors vers un répertoire supérieur sans bloquer la cookie de session.

En construisant un postId plus spécifique, on vise directement la fonction de changement d’e-mail :

Redirection simple vers la page de changement d’e-mail :

Mis à jour

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