
Un outil rapide pour scanner les vulnérabilités de pollution de prototype côté client écrit en Rust. 🦀
Fuzzer de Pollution de Prototype
Un outil rapide pour analyser la vulnérabilité de pollution de prototype côté client écrit en Rust. 🦀
Téléchargez simplement un binaire pré-compilé depuis la page des releases et exécutez-le !
| NOTE : Rust doit être installé ! |
Avec cargo :
▶ cargo install ppfuzz
Construction manuelle de l'exécutable à partir du code source :
▶ git clone https://github.com/dwisiswant0/ppfuzz
▶ cd ppfuzz && cargo build --release
# le fichier binaire se trouve dans target/release/ppfuzz
ppfuzz utilise chromiumoxide, qui nécessite que le navigateur Chrome ou Chromium soit installé. Si la variable d'environnement CHROME est définie, elle sera utilisée comme exécutable par défaut. Sinon, les noms de fichiers google-chrome-stable, chromium, chromium-browser, chrome et chrome-browser sont recherchés dans les emplacements standard. En cas d'échec, /Applications/Google Chrome.app/... (sur MacOS) ou le registre (sur Windows) est consulté.

Comme vous pouvez le voir dans la démonstration ci-dessus (cliquez pour voir en haute qualité), ppfuzz tente de détecter les vulnérabilités de pollution de prototype en ajoutant des requêtes d'objet et de pointeur. Si elle est effectivement vulnérable, il identifiera les gadgets de script utilisés, puis affichera des informations de charge utile supplémentaires qui pourraient potentiellement escalader son impact en XSS, contournement ou injection de cookies.
Il est assez simple d'utiliser ppfuzz !
▶ ppfuzz -l FICHIER [OPTIONS]
Utilisez -l/--list pour fournir une liste d'entrées :
▶ ppfuzz -l FICHIER
Vous pouvez également fournir la liste en utilisant la redirection d'entrée-sortie :
▶ ppfuzz < FICHIER
— ou l'enchaîner à partir de la sortie d'une autre commande :
▶ cat FICHIER | ppfuzz
Afficher uniquement les cibles vulnérables / supprimer les erreurs :
▶ ppfuzz -l FICHIER 2>/dev/null
Voici toutes les options prises en charge :
▶ ppfuzz -h
| Option | Description | Valeur par défaut |
|---|---|---|
| -l, --list | Liste des URL cibles | |
| -c, --concurrency | Définir le niveau de concurrence | 5 |
| -t, --timeout | Temps max. autorisé pour la connexion (s) | 30 |
| -h, --help | Affiche l'aide | |
| -V, --version | Affiche la version |
Quand j'ai commencé ppfuzz, j'avais très peu ou pas de connaissances en Rust et je pense qu'il peut y avoir beaucoup d'inconvénients/vulnérabilités de sécurité. Donc toutes les contributions sont les bienvenues, bien sûr — tout rapport de bug et suggestion sont appréciés, certains environnements n'ont pas encore été testés.
En plus d'être mon outil d'apprentissage, cet outil a été créé car il a été inspiré par l'astuce de @R0X4R sur comment automatiser la vérification de pollution de prototype en utilisant page-fetch. Le workflow de compilation croisée GitHub inspiré par crodjer's sysit.
Comme cet outil inclut quelques contributions, je remercie publiquement les utilisateurs suivants pour leur aide et leurs ressources :
Fourty2#4842 (Discord) - pour une solution de contournement utile.ppfuzz est distribué sous licence MIT. Voir LICENSE.