Checklist

1. CritĂšre pour avoir une CSRF

Si il y a un paramÚtre imprédictible (CSRF Token), il est nécéssaire de réaliser les test suivant afin de savoir si il est possible de bypass ce token :

2. Bypass CSRF token

Si encore une fois, nous somme en présence d'un csrf token et d'un cookie csrf, faites les choses suivante :

Payload intéressante pour de l'injection de header cookie :

<img src="https://YOUR-LAB-ID.web-security-academy.net/?search=test%0d%0aSet-Cookie:%20csrfKey=YOUR-KEY%3b%20SameSite=None" onerror="document.forms[0].submit()">

Par moment il est possible que le csrf token et le csrf cookie soit identique et que la vérification se fasse sur l'égalité des deux.

5. Les cookies présente l'attribut SameSite Strict/Lax

Ressource :

Schéma :

5.1 L'attribut Strict :

Pour réussir à forger une csrf avec un cookie présentant l'attribut strict, il faut réussir à trouver une vulnérabilité qu'on nomme open redirection. Effectivement, il est nécessaire de trouver dans le site web une fonction faisant une redirection et sur laquelle on peut forger notre redirection. Le fonctionnement est simple, la victime va cliquer sur le lien mais le cookie ne sera pas envoyé mais la redirection qu'on aurait pu faire réalisé à la victime va elle contenir le cookie. Ainsi si on arrive a rediriger notre victime vers la bonne fonction (ex changemail?mail=attacker@hack.fr) alors la CSRF est possible

5.2 L'attribut Lax

Les restrictions Lax SameSite signifient que les navigateurs enverront le cookie dans les requĂȘtes intersites, mais uniquement si les deux conditions suivantes sont remplies :

Cela signifie que le cookie n'est pas inclus dans les requĂȘtes POST intersites, par exemple. Comme les requĂȘtes POST sont gĂ©nĂ©ralement utilisĂ©es pour effectuer des actions qui modifient des donnĂ©es ou un Ă©tat (au moins selon les meilleures pratiques), elles sont beaucoup plus susceptibles d'ĂȘtre la cible d'attaques CSRF.

Pour ce faire il faut donc :

Exemple :

Lorsqu'on overwrite la méthode, on trompe en réalité le navigateur pour qu'il envoie le cookie et cÎté backend on l'interprÚte en POST.

6. CSRF basé sur le referer Header

Certains site web utilise le referer header afin de connaitre d'ou la requĂȘte a Ă©tĂ© initiĂ©. Si celle-ci a Ă©tĂ© initiĂ© depuis un site diffĂ©rents alors la requĂȘte n'est pas valide.

Ainsi on peut bypass,cette protection si celle-ci est mal utilisé :

<meta name="referrer" content="never">

Last updated