XSS pour contourner les défenses CSRF
Exploiting XSS to bypass CSRF defenses
Ce laboratoire contient une vulnérabilité XSS stockée dans la fonctionnalité de commentaires du blog. L’objectif est d’exploiter cette vulnérabilité pour dérober le token CSRF d’un utilisateur qui consulte les commentaires, puis s’en servir pour modifier l’adresse e-mail de ce compte. Vous pouvez vous connecter avec les identifiants suivants : wiener:peter.
Il existe un champ sur la page permettant de mettre à jour l’e-mail.

Il existe un champ sur la page permettant de mettre à jour l’e-mail.
En interceptant la requête de mise à jour on observe les paramètres (exemple) :
email=test%40jord4n.procsrf=bChKCyNxiyBR5opUEioECjC9Trutjqyg

Stratégie:

Publier un commentaire contenant un script qui, lorsque la page est vue par la victime, récupère le HTML de la page de compte (
/my-account) en utilisant une requête synchrone ou asynchrone.Exfiltrer ce HTML vers un serveur d’écoute contrôlé (en l’encodant en base64 si souhaité).
Récupérer côté attaquant le token CSRF et, à partir d’un second script exécuté dans le contexte de la victime, effectuer une requête POST vers
/my-account/change-emailen fournissant à la fois la nouvelle adresse et le token CSRF récupéré — la requête utilisera le cookie de session de la victime puisque le script s’exécute dans son navigateur.
Exfiltration du code source de la page de compte vers un serveur d’écoute (encodé en Base64) :

Résultat observé:
Sur notre infrastructure d’écoute deux requêtes contenant le HTML encodé en base64.

Après décodage, le HTML contient bien les informations du compte : nom d’utilisateur
administrator, l’e-mail actuel, et le token CSRF dans un champinput(ex.name="csrfa" value="cmqvVFqntB52GNDWvd7VeQjoiAtHfa8M"dans l’exemple fourni).

Récupération du token CSRF depuis le HTML et soumission d’un changement d’e-mail (POST) :
Mis à jour
Ce contenu vous a-t-il été utile ?