makeMyCSRF : outil pour faciliter l’exploitation des CSRF

Je vous présente aujourd’hui un outil Python que j’ai développé récemment : makeMyCSRF.


Comme son nom l’indique, cet outil sera utile aux pentesters lors de l’exploitation des failles de type CSRF.

La construction d’une exploitation fonctionnelle d’une faille de type CSRF est en soit assez simple la plupart du temps, il suffit de construire un formulaire HTML qui va faire en sorte que l’utilisateur génère la requête souhaitée depuis son navigateur. On récupère donc la plupart du temps en entrée une trame réseau, issue d’outils tels que Wireshark, BuprSuite ou TamperData, puis on construit le formulaire HTML à partir de cette information.

La construction de ce formulaire est en soi triviale, mais c’est une tâche qui peut être automatisée et qui est profondément ennuyante, j’ai donc écrit un petit bout de code Python qui se charge de cette tâche 🙂

Ce code est maintenant sur Github : https://github.com/nj8/makeMyCSRF

makeMyCSRF peut être téléchargé grâce à cette commande :

git clone https://github.com/nj8/makeMyCSRF.git

Voici un exemple d’utilisation :

En entrée nous aurons donc quelque chose issue de l’analyse des échanges web, par exemple venant de Tamper data (clic droit “Copie” sur une requête POST) :

makeMyCSRF-01

Cela vous donnera une requête au format brut :

makeMyCSRF-02

C’est ce format que le script Python va prendre en entrée pour le transformer en un formulaire HTML utilisable lors de l’exploitation d’une CSRF. Pour la commande à utiliser :

python makeMyCSRF.py -i in.txt -f Tamper

Ici, je prends en entrée le contenu du fichier in.txt qui contient une requête POST (celle à exploiter dans notre CSRF précisément), celle-ci étant capturée via le plugin TamperData, une fois le script utilisé avec ces informations en entrée, nous aurons un formulaire HTML auto-submit tout beau tout propre :

makeMyCSRF-03

L’intérêt de l’auto-submit (partie JavaScript), est que ce formulaire sera directement utilisable dans le contexte d’une CSRF, l’utilisateur va sur la page et est directement redirigé vers une page du serveur cible pour effectuer une requête finalement contrôlée par l’attaquant.

Parmi les formats d’entrée aujourd’hui pris en compte :

  • TamperData
  • TamperData – plugin FR
  • BurpSuite
  • Wireshark (pour les trames HTTP)

Dans cette vidéo, je vous montre à quel endroit et comment récupérer les informations d’une trame que l’on souhaite transformer en formulaire HTML :

Vous trouverez sur ma chaîne Youtube des vidéos similaires pour Wireshark et BurpSuite.

Je vous invite à consulter le README du projet pour plus d’informations ! N’hésitez pas à me remonter tout problème d’utilisation ou bug sur le Github ! 🙂

Vous aimerez aussi...

1 réponse

  1. Infogérance dit :

    A la fois très instructif et très innovant, notamment pour ceux qui ont déjà été confrontés à ce genre d’attaque. Pour rappel, en recourant à la faille CSRF, un hacker a la possibilité de supprimer certains contenus d’un site.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *