Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pFuzz — Fuzzer modulare per bypass WAF con multi-threading, manipolazione delle richieste e codifica dei payload per test di applicazioni web per red team. | Kitploit
Strumenti/GitHubGitHub/redsection/pfuzz
Bypass WAFSicurezza WebFuzzingPenetration TestingRed Teaming
GitHubredsection/pfuzz

pFuzz

Fuzzer modulare per bypass WAF con multi-threading, manipolazione delle richieste e codifica dei payload per test di applicazioni web per red team.

Vedi Repository
16131135 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Cos'è pFuzz / pFuzz Nedir ❓

pFuzz è uno strumento avanzato di fuzzing per red teaming sviluppato per la nostra ricerca. Ci aiuta a bypassare i web application firewall utilizzando diversi metodi contemporaneamente.

pFuzz è uno strumento di fuzzing avanzato che abbiamo sviluppato per la ricerca su applicazioni web. È stato sviluppato per accelerare il processo di test di diversi metodi di attacco su varie applicazioni di sicurezza.

Descrizione [EN]

pFuzz è uno strumento sviluppato in Python per avere capacità avanzate di fuzzing nella ricerca su applicazioni web. Poiché l'applicazione ha una struttura modulare, è in grado di aggiungere rapidamente nuovi metodi di bypass WAF trovati/da trovare a pFuzz e testarli su tutti gli altri WAF. Oltre a una struttura modulare, sono state utilizzate strutture come multi-threading, multi-processing e code per rendere lo strumento più flessibile e creare l'infrastruttura per sviluppi futuri.

Lo strumento è programmato in modo che una richiesta data possa essere analizzata e modificata facilmente tramite un oggetto. Grazie a questa struttura, coloro che svilupperanno l'applicazione potranno contribuire facilmente e sviluppare lo strumento in base alle proprie esigenze senza dover modificare la struttura principale dell'applicazione e senza doverla imparare.


Nota: Se vuoi contribuire allo sviluppo, puoi farlo non solo sviluppando pFuzz ma anche aggiungendo nuovi moduli. Sentiti libero di aprire nuove PR :)


Descrizione [TR]

pFuzz è uno strumento sviluppato in Python per avere capacità avanzate di fuzzing nella ricerca su applicazioni web. Poiché l'applicazione ha una struttura modulare, è in grado di aggiungere rapidamente nuovi metodi di bypass WAF trovati/da trovare a pFuzz e testarli su tutti gli altri WAF. Oltre a una struttura modulare, sono state utilizzate strutture come multi-threading, multi-processing e code per rendere lo strumento più flessibile e creare l'infrastruttura per sviluppi futuri.

Lo strumento è programmato in modo che una richiesta data possa essere analizzata e modificata facilmente tramite un oggetto. Grazie a questa struttura, coloro che svilupperanno l'applicazione potranno contribuire facilmente e sviluppare lo strumento in base alle proprie esigenze senza dover modificare la struttura principale dell'applicazione e senza doverla imparare.


Nota: Se vuoi contribuire allo sviluppo, puoi farlo non solo sviluppando il nucleo 'core', ma anche aggiungendo nuovi moduli. Aspettiamo le tue nuove PR :)


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

Sviluppatori 💁

Flusso 📋

pFuzz

Installazione e Utilizzo 📚

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

Dipendenze:

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

Utilizzo

  • Aiuto
root@kitploit:~
python3 pfuzz.py --help
  • Modulo di manipolazione degli header
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Modulo di char fuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Modulo di fuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Aggiungi proxy
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Aggiungi un ritardo tra le richieste
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • Abilita connessione TLS/SSL
root@kitploit:~
python3 pfuzz.py -r request.txt -f -s
  • Abilita logging
root@kitploit:~
python3 pfuzz.py -r request.txt -f -l
  • Abilita la funzione di encoding/full-encoding del payload
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Imposta multi-thread
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Output sul terminale
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Output su file
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Aiuto 💻

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             mostra questo messaggio di aiuto ed esci
  --proxy/-p    PROXY   proxy [IP:PORT]
  --log/-l              abilita logging
  --ssl/-s              abilita ssl
  --threads/-t  NUMBER  numero di thread [default=1]
  --version/-v          mostra il numero di versione del programma ed esci
  
[Opzioni Richiesta]:  
  --request/-r  REQUEST file di richiesta
  --delay/-d    TIME    imposta un ritardo tra le richieste [default=0.05]
  --encode/-e           codifica gli spazi nell'uri/body
  --full-encode/-fe     codifica tutti i caratteri nell'uri/body
  
[Opzioni Output]:
  --output/-o   OUTPUT  output informazioni importanti [terminale/nome cartella]
  --output-details/-od OUTPUT
                        output tutti i dettagli [terminale/nome cartella]
                        
[Moduli]:
  --fuzz/-f             esegue il modulo di fuzzing
  --charfuzz/-cf        esegue il modulo di char fuzzing
  --manipulate/-m       esegue il modulo di manipolazione degli header

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

Extra 📢

Come Sviluppare un Nuovo Modulo

  • All'interno della cartella modules/ deve essere creato un file Python che specifica il nome del modulo.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • È possibile utilizzare l'oggetto analizzato ad esempio myreq = HTTPReq.getobj()
root@kitploit:~
from reqparser import HTTPReq
myreq = HTTPReq.getobj()
  • Ha molti attributi derivati dalla classe HTTPReq. Puoi trovarli in reqparser.py.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Se vuoi ottenere i tuoi payload dal file Excel, puoi utilizzare i metodi getpayloads provenienti da modules.exparse.

    • getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Abbiamo impostato oggetti statici come fuzzsheetName in statics.py che si trova nella cartella static/.
    root@kitploit:~
    # Modulo di Fuzzing in static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Ora puoi modificare/aggiungere/eliminare attributi come desideri.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Per interrompere il multi-threading, devi aggiungere il payload #exitme# alla fine dei tuoi payload e impostare statics.exitCall = True per verificare se la coda è vuota o meno.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERAZIONI]
  • Quando il tuo oggetto (richiesta) è pronto per essere inviato, puoi utilizzare la funzione sendit() per accodarlo.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Se hai bisogno di modificare le funzioni principali in pFuzz, puoi avviare una pull request o aprire una issue.

Alcune Funzioni Importanti per Sviluppare Nuovi Moduli


Quali WAF abbiamo bypassato?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Scarica lo strumento

Emre Övünç


Mert Taşçı


Evren Yalçın

ScopoModulo/ClasseFunzioneParametro(i)
Per inviare una richiestareqsender.py sendit()oggetto
Per utilizzare un oggetto richiestareqparser.py/HTTPReq getobj()  -
Per aggiungere un header personalizzatoreqparser.py/HTTPReq OBJECT.addheader() nomeNuovoHeader,valore
Per eliminare un headerreqparser.py/HTTPReq OBJECT.delheader() nomeHeader
Per modificare un headerreqparser.py/HTTPReq OBJECT.changeheader()nomeHeader,nomeNuovoHeader
Per ottenere un payload dal fileexparse.py getpayloads() nomeFoglio,nomeColonna
Per scrivere un log info/debug/warningwaflogger.py loginfo/logdebug/logwarn() messaggioLog