Université Moulay Ismail Introduction au sécurité du Web et mobile
Ecole Supérieure de Technologie, Meknès Année universitaire 2025-2026
TP4
Attaques CSRF
La falsification de requête intersite (CSRF) se produit lorsqu'un attaquant trompe un utilisateur
afin qu'il effectue des actions sur une application web pour laquelle il est déjà authentifié. Sans
vérification adéquate des requêtes, les attaquants peuvent exploiter la session de l'utilisateur
pour exécuter des actions non autorisées, comme la modification des paramètres ou la
réalisation d'achats. Une prévention efficace contre les attaques CSRF repose sur l'utilisation
de token anti-CSRF, la vérification de l'origine des requêtes et, parfois, l'exigence d'une
réauthentification pour les actions à haut risque.
DVWA - Niveau de sécurité faible
1) Choisir le niveau de sécurité Low.
Au niveau de sécurité faible, aucune protection CSRF n'est implémentée. Par conséquent, toute
requête adressée à l'application est traitée sans vérification de son origine ni de la présence d'un
token CSRF. Cette vulnérabilité permet à un attaquant de concevoir une requête malveillante
capable de déclencher des actions au nom d'un utilisateur authentifié.
2) Ouvrir le navigateur BurpSuit.
3) Changer le mot de passe, puis tester les informations d’identification.
En envoyant une simple requête GET avec des paramètres de modification du mot de passe, un
attaquant peut changer le mot de passe sans le consentement de l'utilisateur.
4) Envoyez le lien à l'administrateur
[Link]
ord&Change=Change#
Lorsque l'administrateur cliquera sur le lien, son mot de passe sera automatiquement modifié
en « password ».
5) Utiliser BurpSuit pour le suivi de requêtes.
DVWA — Niveau de sécurité moyen
Au niveau de sécurité moyen, DVWA introduit une protection de base en vérifiant l’en-tête
Referer afin de s’assurer que la requête provient du même site. Cependant, les attaquants
pourraient manipuler l’en-tête Referer ou la contourner par d’autres techniques.
Pour contourner ce niveau, l'attaquant doit ajouter l'en-tête Referer avec l'origine correcte afin
de tromper l'application et de lui faire traiter la requête.
1) Changer le mot de passe.
2) Utilisez la même charge utile qu’au niveau de sécurité faible.
[Link]
ord&Change=Change#
3) Que remarquez-vous ?
4) Visualiser la différence sous BurpSuit.
5) Envoyer la requête au repeater. Exécuter avec et sans Referer.
6) Cliquer sur la requête puis Engagement tools, Generate CSRF POC. Burp va créer une page
HTML prête à l’emploi.
7) Le mot de passe sera modifié avec succès lorsque l'en-tête Referer correspondra à l'origine
du serveur. Utiliser le Referer pour contourner la restriction.
DVWA — Niveau de sécurité élevé
Au niveau de sécurité élevé, DVWA utilise des tokens anti-CSRF pour se protéger. Ces tokens
sont générés dynamiquement et requis dans les requêtes pour valider l’authenticité, empêchant
ainsi les attaques CSRF et garantissant que seules les requêtes légitimes de la session de
l’utilisateur sont acceptées.
Pour contourner ce niveau de protection, l'attaquant devrait s'emparer du token CSRF associé à
la session. Ce token peut être extrait en inspectant le code source de la page ou en utilisant la
console du navigateur.
1) Extraire le token CSRF
Ouvrez la console de développement sur la page contenant le formulaire de
changement de mot de passe.
Exécutez la commande suivante pour récupérer le token CSRF :
[Link]([Link]("user_token")[0].value)
Utilisez le token extrait dans la charge utile pour finaliser la requête.
2) À partir du token utilisateur extrait, construisez l'URL. Envoyer deux requêtes différentes.
3) Envoyer la requête au repeater puis utiliser des valeurs différentes de tokens.
4) Que remarquez-vous.