Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pFuzz — Fuzzer modulaire de contournement de WAF avec multithreading, manipulation de requêtes et encodage de payload pour les tests d'applications web en équipe rouge. | Kitploit
Outils/GitHubGitHub/redsection/pfuzz
Contournement de WAFSécurité WebFuzzingTests d'IntrusionRed Teaming
GitHubredsection/pfuzz

pFuzz

Fuzzer modulaire de contournement de WAF avec multithreading, manipulation de requêtes et encodage de payload pour les tests d'applications web en équipe rouge.

Voir le dépôt
16131il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Qu'est-ce que pFuzz ❓

pFuzz est un outil de fuzzing avancé pour les opérations de red team que nous avons développé pour nos recherches. Il nous aide à contourner les pare-feux d'applications web en utilisant différentes méthodes simultanément.

pFuzz est un outil de fuzzing avancé que nous avons développé pour la recherche sur les applications web. Il a été conçu pour accélérer le processus de test de différentes méthodes d'attaque sur diverses applications de sécurité.

Description [EN]

pFuzz est un outil développé en langage Python pour offrir une capacité de fuzzing avancée dans la recherche sur les applications web. Grâce à sa structure modulaire, il permet d'ajouter rapidement les méthodes de contournement WAF nouvellement découvertes ou à découvrir à pFuzz et de les tester sur tous les autres WAF. Outre la structure modulaire, des mécanismes comme le multi-threading, le multi-processing et les files d'attente ont été utilisés pour rendre l'outil plus flexible, et l'infrastructure a été créée pour les développements futurs.

L'outil est programmé de manière à ce qu'une requête donnée puisse être analysée et facilement modifiée via un objet. Grâce à cette structure, les personnes qui développeront l'application pourront contribuer facilement et faire évoluer l'outil selon leurs besoins sans avoir à modifier la structure de base de l'application ni à l'apprendre.


Note : Si vous souhaitez contribuer au développement, vous pouvez le faire non seulement en développant pFuzz, mais aussi en ajoutant de nouveaux modules. N'hésitez pas à ouvrir de nouvelles PR :)


Açıklama [TR]

pFuzz est un outil développé en langage Python pour offrir une capacité de fuzzing avancée dans la recherche sur les applications web. Comme l'application a une structure modulaire, elle peut rapidement ajouter les méthodes de contournement WAF nouvellement découvertes ou à découvrir à pFuzz et les tester sur tous les autres WAF. En plus d'une structure modulaire, des mécanismes comme le multi-threading, le multi-processing et les files d'attente ont été utilisés pour rendre l'outil plus flexible, et l'infrastructure a été créée pour les développements futurs.

L'application est programmée pour qu'une requête donnée puisse être analysée et facilement modifiée via un objet. Grâce à cette structure, les personnes qui développeront l'application pourront contribuer facilement et faire évoluer l'outil selon leurs besoins sans avoir à modifier la structure de base de l'application ni à l'apprendre.


Not : Si vous souhaitez contribuer au développement, vous pouvez le faire non seulement en développant le cœur (core) de pFuzz, mais aussi en ajoutant de nouveaux modules. Nous attendons vos nouvelles PR :)


root@kitploit:~
        _____                 
 _ __  |  ___|_   _  ____ ____
| '_ \ | |_  | | | ||_  /|_  /
| |_) ||  _| | |_| | / /  / / 
| .__/ |_|    \__,_|/___|/___|
|_|                           

Développeurs 💁

Flux 📋

pFuzz

Installation et utilisation 📚

root@kitploit:~
sudo pip3 install virtualenv
python3 -m venv myvenv
source myvenv/bin/activate
pip3 install -r requirements.txt
python3 pfuzz.py --help

Dépendances :

root@kitploit:~
cffi==1.14.3
cryptography==3.1.1
numpy==1.19.2
pandas==1.1.3
pycparser==2.20
pyOpenSSL==19.1.0
python-dateutil==2.8.1
pytz==2020.1
six==1.15.0
xlrd==1.2.0

Utilisation

  • Aide
root@kitploit:~
python3 pfuzz.py --help
  • Module de manipulation des en-têtes
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Module de charfuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Module de fuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Ajouter un proxy
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Ajouter un délai entre les requêtes
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • Activer la connexion TLS/SSL
root@kitploit:~
python3 pfuzz.py -r request.txt -f -s
  • Activer la journalisation
root@kitploit:~
python3 pfuzz.py -r request.txt -f -l
  • Activer la fonction d'encodage/d'encodage complet des charges utiles
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Définir le nombre de threads
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Sortie vers le terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Sortie vers un fichier
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Aide 💻

root@kitploit:~
              _____                 
       _ __  |  ___|_   _  ____ ____
      | '_ \ | |_  | | | ||_  /|_  /
      | |_) ||  _| | |_| | / /  / / 
      | .__/ |_|    \__,_|/___|/___|
      |_|
   ------------------------------------
   @EmreOvunc | @merttasci | @xsuperbug
   ------------------------------------
                 v0.2.4
   ------------------------------------

usage: pfuzz.py [-h] [--request REQUEST] [--proxy PROXY] [--log] [--ssl]
                 [--threads THREADS] [--output OUTPUT] [--delay TIME] 
                 [--output-details OUTPUT] [--full-encode] [--encode]
                 [--fuzz] [--charfuzz] [--manipulate] [--version]

optional arguments:
  --help/-h             show this help message and exit
  --proxy/-p    PROXY   proxy [IP:PORT]
  --log/-l              enable logging
  --ssl/-s              enable ssl
  --threads/-t  NUMBER  thread(s) number [default=1]
  --version/-v          show program's version number and exit
  
[Request Options]:  
  --request/-r  REQUEST request file
  --delay/-d    TIME    set a delay between requests [default=0.05]
  --encode/-e           encode space chars in uri/body
  --full-encode/-fe     encode all chars in uri/body
  
[Output Options]:
  --output/-o   OUTPUT  output important info [terminal/folder name]
  --output-details/-od OUTPUT
                        output all details [terminal/folder name]
                        
[Modules]:
  --fuzz/-f             run fuzzing module
  --charfuzz/-cf        run char fuzzing module
  --manipulate/-m       run manipulating headers module

Usage: python3 pfuzz.py -r req.txt --log -s --fuzz -d 1 --encode -o terminal --threads 2
Usage: python3 pfuzz.py -r req.txt -f -l --proxy 127.0.0.1:8080 --output-details ~/output

Suppléments 📢

Comment développer un nouveau module

  • Un fichier Python portant le nom du module doit être créé dans le dossier modules/.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • Vous pouvez utiliser l'objet analysé comme myreq = HTTPReq.getobj()
root@kitploit:~
from reqparser import HTTPReq
myreq  = HTTPReq.getobj()
  • Il possède de nombreux attributs dérivés de la classe HTTPReq. Vous pouvez les trouver dans reqparser.py.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Si vous souhaitez récupérer vos charges utiles depuis le fichier Excel, vous pouvez utiliser les méthodes getpayloads provenant de modules.exparse.

    • getpayloads(nomFeuille, nomColonneGenerique, chargesUtiles)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Nous avons défini des objets statiques comme fuzzsheetName dans statics.py qui se trouve dans le dossier static/.
    root@kitploit:~
    # Fuzzing Module in static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Maintenant, vous pouvez modifier/ajouter/supprimer les attributs comme vous le souhaitez.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Pour arrêter le multi-threading, vous devez ajouter la charge utile #exitme# à la fin de vos charges utiles et définir statics.exitCall = True pour vérifier si la file d'attente est vide ou non.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERATIONS]
  • Lorsque votre objet (requête) est prêt à être envoyé, vous pouvez utiliser la fonction sendit() pour le mettre en file d'attente.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Si vous devez modifier les fonctions de base de pFuzz, vous pouvez ouvrir une pull request ou signaler un problème.

Quelques fonctions importantes pour développer de nouveaux modules


Quels WAF avons-nous contournés ?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Télécharger l’outil

Emre Övünç


Mert Taşçı


Evren Yalçın

ObjectifModule/ClasseFonctionParamètre(s)
Envoyer une requêtereqsender.pysendit()objet
Utiliser un objet de requêtereqparser.py/HTTPReqgetobj()-
Ajouter un en-tête personnaliséreqparser.py/HTTPReqOBJECT.addheader()nouveauNomEnTête,valeur
Supprimer un en-têtereqparser.py/HTTPReqOBJECT.delheader()nomEnTête
Modifier un en-têtereqparser.py/HTTPReqOBJECT.changeheader()nomEnTête,nouveauNomEnTête
Obtenir une charge utile depuis le fichierexparse.pygetpayloads()nomFeuille,nomColonne
Écrire un journal info/debug/warningwaflogger.pyloginfo/logdebug/logwarn()messageJournal