Want to create interactive content? It’s easy in Genially!

Get started free

Présentation faille CSRF

Stephane Hilaricus

Created on May 1, 2022

Start designing with a free template

Discover more than 1500 professional designs like these:

Transcript

Présenté par : Stéphane Hilaricus, Clément Diot, Mathis Delhalle, Ramzi Al Khateeb

La faille CSRF

Commencer

Description de la faille Comment contrer la faille Présentation des labs Sources

SOMMAIRE

Suivant

La faille CSRF c'est quoi ?

Cross-site request forgery

Suivant

Ce type d'attaque consiste simplement à faire exécuter à une victime une requête HTTP à son insu. Le but est de faire aller notre victime sur une page pour qu'il exécute les actions de la page, avec ses privilèges (généralement plus élevés que les nôtres). Par exemple, il peut s'agir de changer l'adresse e-mail de son compte, de changer son mot de passe ou d'effectuer un transfert de fonds. Selon la nature de l'action, l'attaquant peut être en mesure d'obtenir un contrôle total sur le compte de l'utilisateur. Si l'utilisateur compromis a un rôle privilégié au sein de l'application, l'attaquant peut être en mesure de prendre le contrôle total de toutes les données et fonctionnalités de l'application.

Suivant

Suivant

Comment peut on s'y défendre ?

Pour qui est décidé à agir injustement, il n'y a pas de défense qui vaille.

Suivant

Le moyen le plus robuste de se défendre contre les attaques CSRF consiste à inclure un jeton CSRF dans les requêtes pertinentes. Le jeton doit être : Imprévisible avec une entropie élevée, comme pour les jetons de session en général. Lié à la session de l'utilisateur. Strictement validé dans tous les cas avant l'exécution de l'action concernée.

Suivant

Ramzy

Stéphane

Mathis

Clément

START

START

START

START

Ce lab permet de montrer l’attaque CRSF sur la fonctionnalité de changement d’e-mail d’un site. Il tente d'utiliser la technique de prévention CSRF non sécurisée "double soumission". Ainsi en utilisant un serveur d'exploitation pour héberger une page HTML qui utilise une attaque CSRF, on peut modifier l'adresse e-mail du spectateur.

Ouvrez le navigateur de Burp et connectez-vous à votre compte. Soumettez le formulaire "Mettre à jour l'e-mail" et recherchez la demande résultante dans votre historique de proxy. Envoyez la requête à Burp Repeater et observez que la valeur du csrfparamètre body est simplement validée en la comparant avec le csrfcookie. Effectuez une recherche, envoyez la demande résultante à Burp Repeater et observez que le terme de recherche est reflété dans l'en-tête Set-Cookie. Étant donné que la fonction de recherche n'a pas de protection CSRF, vous pouvez l'utiliser pour injecter des cookies dans le navigateur de l'utilisateur victime. Créez une URL qui utilise cette vulnérabilité pour injecter un faux csrfcookie dans le navigateur de la victime : /?search=test%0d%0aSet-Cookie:%20csrf=fake Créez et hébergez un exploit de preuve de concept comme décrit dans la solution à la vulnérabilité CSRF sans laboratoire de défense, en vous assurant que votre jeton CSRF est défini sur "faux". L'exploit doit être créé à partir de la demande de changement d'e-mail. Supprimez le bloc de script et ajoutez à la place le code suivant pour injecter le cookie et envoyer le formulaire : <img src="$cookie-injection-url" onerror="document.forms[0].submit();"/> Enregistrez l'exploit, puis cliquez sur "Livrer à la victime" pour résoudre le laboratoire.

La fonctionnalité de changement d'e-mail qui est vulnérable à une attaque à CRSF. Des jetons sont utilisés pour contrer ses attaques, mais ils ne sont pas entièrement intégrés au système de gestion de session du site.

Ouvrez le navigateur de Burp et connectez-vous à votre compte. Soumettez le formulaire "Mettre à jour l'e-mail" et interceptez la demande qui en résulte. Notez la valeur du jeton CSRF , puis supprimez la requête. Ouvrez une fenêtre de navigateur privée/incognito, connectez-vous à votre autre compte et envoyez la demande de mise à jour par e-mail dans Burp Repeater. Notez que si vous échangez le jeton CSRF avec la valeur de l'autre compte, la demande est acceptée. Créez et hébergez un exploit de preuve de concept comme décrit dans la solution à la vulnérabilité CSRF sans laboratoire de défense. Notez que les jetons CSRF sont à usage unique, vous devrez donc en inclure un nouveau. Enregistrez l'exploit, puis cliquez sur "Livrer à la victime" pour résoudre le laboratoire.

La fonctionnalité de changement d'e-mail de cet atelier est vulnérable à CSRF. Il utilise des jetons pour essayer d'empêcher les attaques CSRF, mais ils ne sont pas entièrement intégrés au système de gestion de session du site.

Ouvrez le navigateur de Burp et connectez-vous à votre compte. Soumettez le formulaire "Mettre à jour l'e-mail" et recherchez la demande résultante dans votre historique de proxy. Envoyez la demande à Burp Repeater et observez que la modification du sessioncookie vous déconnecte, mais la modification du csrfKeycookie entraîne simplement le rejet du jeton CSRF . Cela suggère que le csrfKeycookie n'est peut-être pas strictement lié à la session. Ouvrez une fenêtre de navigateur privée/incognito, connectez-vous à votre autre compte et envoyez une nouvelle demande par e-mail de mise à jour dans Burp Repeater. Notez que si vous échangez le csrfKeycookie et le csrfparamètre du premier compte vers le deuxième compte, la demande est acceptée. Fermez l'onglet Répéteur et le navigateur incognito. De retour dans le navigateur d'origine, effectuez une recherche, envoyez la requête résultante à Burp Repeater et observez que le terme de recherche est reflété dans l'en-tête Set-Cookie. Étant donné que la fonction de recherche n'a pas de protection CSRF, vous pouvez l'utiliser pour injecter des cookies dans le navigateur de l'utilisateur victime. Créez une URL qui utilise cette vulnérabilité pour injecter votre csrfKeycookie dans le navigateur de la victime : /?search=test%0d%0aSet-Cookie:%20csrfKey=your-key Créez et hébergez un exploit de preuve de concept comme décrit dans la solution à la vulnérabilité CSRF sans laboratoire de défenses, en vous assurant d'inclure votre jeton CSRF . L'exploit doit être créé à partir de la demande de changement d'e-mail. Supprimez le scriptbloc et ajoutez à la place le code suivant pour injecter le cookie : <img src="$cookie-injection-url" onerror="document.forms[0].submit()"> Enregistrez l'exploit, puis cliquez sur "Livrer à la victime" pour résoudre le laboratoire.

La fonctionnalité de changement d'e-mail de cet atelier est vulnérable à CSRF.

Ouvrez le navigateur de Burp et connectez-vous à votre compte. Soumettez le formulaire "Mettre à jour l'e-mail" et recherchez la demande résultante dans votre historique de proxy. Sinon, si vous utilisez Burp Suite Community Edition , utilisez le modèle HTML suivant et renseignez les paramètres de méthode, d'URL et de corps de la requête. Vous pouvez obtenir l'URL de la demande en cliquant avec le bouton droit de la souris et en sélectionnant "Copier l'URL". <form method="$method" action="$url"> <input type="hidden" name="$param1name" value="$param1value"> </form> <script> document.forms[0].submit(); </script> Allez sur le serveur d'exploit, collez votre code HTML d'exploit dans la section "Corps", et cliquez sur "Stocker". Pour vérifier que l'exploit fonctionne, essayez-le vous-même en cliquant sur "Afficher l'exploit", puis vérifiez la requête et la réponse HTTP résultantes. Cliquez sur "Livrer à la victime" pour résoudre le laboratoire.