Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pFuzz — Modularer WAF-Bypass-Fuzzer mit Multi-Threading, Request-Manipulation und Payload-Kodierung für Webanwendungstests durch Red Teams. | Kitploit
Tools/GitHubGitHub/redsection/pfuzz
WAF-UmgehungWebsicherheitFuzzingPenetrationstestsRed Teaming
GitHubredsection/pfuzz

pFuzz

Modularer WAF-Bypass-Fuzzer mit Multi-Threading, Request-Manipulation und Payload-Kodierung für Webanwendungstests durch Red Teams.

Repository anzeigen
16131vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Was ist pFuzz / Was ist pFuzz? ❓

pFuzz ist ein fortgeschrittenes Fuzzing-Tool für Red Teaming, das wir für unsere Forschung entwickelt haben. Es hilft uns, Web Application Firewalls zu umgehen, indem es gleichzeitig verschiedene Methoden einsetzt.

pFuzz ist ein fortschrittliches Fuzzing-Tool, das wir für die Forschung an Webanwendungen entwickelt haben. Es wurde entwickelt, um den Prozess des Testens verschiedener Angriffsmethoden auf unterschiedliche Sicherheitsanwendungen zu beschleunigen.

Beschreibung [EN]

pFuzz ist ein in Python entwickeltes Tool, das eine erweiterte Fuzzing-Funktionalität für die Forschung an Webanwendungen bietet. Da die Anwendung eine modulare Struktur hat, können neu gefundene/zu findende WAF-Umgehungsmethoden schnell zu pFuzz hinzugefügt und auf allen anderen WAFs getestet werden. Neben einer modularen Struktur wurden Multi-Threading, Multi-Processing und Queue-Strukturen verwendet, um das Tool flexibler zu machen, und die Infrastruktur für zukünftige Entwicklungen wurde geschaffen.

Das Tool ist so programmiert, dass eine gegebene Anfrage analysiert und einfach über ein Objekt geändert werden kann. Dank dieser Struktur können diejenigen, die die Anwendung entwickeln, leicht beitragen und das Tool entsprechend ihren eigenen Bedürfnissen weiterentwickeln, ohne die Kernstruktur der Anwendung ändern oder erlernen zu müssen.


Hinweis: Wenn Sie zur Entwicklung beitragen möchten, können Sie dies nicht nur durch die Entwicklung des Kerns (Core) von pFuzz tun, sondern auch durch das Hinzufügen neuer Module. Wir freuen uns auf neue PRs :)


Beschreibung [TR]

pFuzz ist ein in Python entwickeltes Tool, das eine erweiterte Fuzzing-Funktionalität für die Forschung an Webanwendungen bietet. Da die Anwendung eine modulare Struktur hat, können neu gefundene/zu findende WAF-Umgehungsmethoden schnell zu pFuzz hinzugefügt und auf allen anderen WAFs getestet werden. Neben einer modularen Struktur wurden Multi-Threading, Multi-Processing und Queue-Strukturen verwendet, um das Tool flexibler zu machen, und die Infrastruktur für zukünftige Entwicklungen wurde geschaffen.

Das Tool ist so programmiert, dass eine gegebene Anfrage analysiert und einfach über ein Objekt geändert werden kann. Dank dieser Struktur können diejenigen, die die Anwendung entwickeln, leicht beitragen und das Tool entsprechend ihren eigenen Bedürfnissen weiterentwickeln, ohne die Kernstruktur der Anwendung ändern oder erlernen zu müssen.


Hinweis: Wenn Sie zur Entwicklung beitragen möchten, können Sie dies nicht nur durch die Entwicklung des Kerns (Core) tun, sondern auch durch das Hinzufügen neuer Module. Wir freuen uns auf Ihre neuen PRs :)


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

Entwickler 💁

Ablauf 📋

pFuzz

Installation und Verwendung 📚

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

Abhängigkeiten:

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

Verwendung

  • Hilfe
root@kitploit:~
python3 pfuzz.py --help
  • Modul zum Manipulieren von Headern
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Charfuzzing-Modul
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Fuzzing-Modul
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Proxy hinzufügen
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Verzögerung zwischen Anfragen hinzufügen
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • TLS/SSL-Verbindung aktivieren
root@kitploit:~
python3 pfuzz.py -r request.txt -f -s
  • Protokollierung aktivieren
root@kitploit:~
python3 pfuzz.py -r request.txt -f -l
  • Payload-Kodierung/Vollkodierungsfunktion aktivieren
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Multi-Threads einstellen
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Ausgabe im Terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Ausgabe in eine Datei
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Hilfe 💻

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

Extras 📢

Wie man ein neues Modul entwickelt

  • Eine Python-Datei, die den Namen des Moduls angibt, sollte im Ordner modules/ erstellt werden.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • Sie können das analysierte Objekt wie myreq = HTTPReq.getobj() verwenden.
root@kitploit:~
from reqparser import HTTPReq
myreq  = HTTPReq.getobj()
  • Es hat viele Attribute, die von der HTTPReq-Klasse abgeleitet sind. Sie können diese in reqparser.py einsehen.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Wenn Sie Ihre Payloads aus der Excel-Tabelle beziehen möchten, können Sie die getpayloads-Methoden aus modules.exparse verwenden.

    • getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Wir haben statische Objekte wie fuzzsheetName in statics.py definiert, das sich im static/ Ordner befindet.
    root@kitploit:~
    # Fuzzing Module in static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Jetzt können Sie Attribute nach Belieben ändern/hinzufügen/löschen.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Um Multi-Threading zu beenden, sollten Sie am Ende Ihrer Payloads die #exitme#-Payload hinzufügen und statics.exitCall = True setzen, um zu überprüfen, ob die Queue leer ist.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERATIONS]
  • Wenn Ihr Objekt (Anfrage) zum Senden bereit ist, können Sie die sendit()-Funktion verwenden, um es in die Queue zu stellen.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Wenn Sie Kernfunktionen von pFuzz ändern müssen, können Sie einen Pull-Request erstellen oder ein Issue eröffnen.

Einige wichtige Funktionen zur Entwicklung neuer Module


Welche WAFs haben wir umgangen?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Tool herunterladen

Emre Övünç


Mert Taşçı


Evren Yalçın

ZielModul/KlasseFunktionParameter(s)
Eine Anfrage sendenreqsender.py sendit()object
Ein Anfrageobjekt verwendenreqparser.py/HTTPReq getobj()  -
Einen benutzerdefinierten Header hinzufügenreqparser.py/HTTPReq OBJECT.addheader() newHeadername,value
Einen Header löschenreqparser.py/HTTPReq OBJECT.delheader() headerName
Einen Header ändernreqparser.py/HTTPReq OBJECT.changeheader()headerName,newHeaderName
Eine Payload aus der Datei abrufenexparse.py getpayloads() sheetName,columnName
Eine Log-Info/Debug/Warning schreibenwaflogger.py loginfo/logdebug/logwarn() logMessage