Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pFuzz — Fuzzer modular de bypass de WAF con múltiples hilos, manipulación de solicitudes y codificación de payloads para pruebas de aplicaciones web de red team. | Kitploit
Herramientas/GitHubGitHub/redsection/pfuzz
Evasión de WAFSeguridad WebFuzzingPruebas de PenetraciónRed Teaming
GitHubredsection/pfuzz

pFuzz

Fuzzer modular de bypass de WAF con múltiples hilos, manipulación de solicitudes y codificación de payloads para pruebas de aplicaciones web de red team.

Ver Repositorio
1613113hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

¿Qué es pFuzz? ❓

pFuzz es una herramienta avanzada de fuzzing para el equipo rojo que desarrollamos para nuestra investigación. Nos ayuda a evadir firewalls de aplicaciones web utilizando diferentes métodos al mismo tiempo.

pFuzz es una herramienta avanzada de fuzzing que desarrollamos para investigaciones de aplicaciones web. Se ha desarrollado para acelerar el proceso de probar varios métodos de ataque en diferentes aplicaciones de seguridad.

Descripción [EN]

pFuzz es una herramienta desarrollada en el lenguaje Python para tener capacidad avanzada de fuzzing en la investigación de aplicaciones web. Dado que la aplicación tiene una estructura modular, tiene la capacidad de añadir rápidamente métodos de evasión de WAF recién encontrados/por encontrar a pFuzz y probarlos en todos los demás WAF. Además de una estructura modular, se han utilizado estructuras como multi-hilo, multiprocesamiento y colas para hacer la herramienta más flexible, y se ha creado la infraestructura para futuros desarrollos.

La herramienta está programada para que una solicitud dada pueda ser analizada y modificada fácilmente a través de un objeto. Gracias a esta estructura, quienes desarrollen la aplicación podrán contribuir fácilmente y desarrollar la herramienta según sus propias necesidades sin cambiar la estructura central de la aplicación y sin tener que aprenderla.


Nota: Si deseas contribuir al desarrollo, no solo puedes hacerlo desarrollando pFuzz, sino también añadiendo nuevos módulos. ¡No dudes en abrir nuevos PR! :)


Descripción [TR]

pFuzz es una herramienta desarrollada en Python para tener capacidad avanzada de fuzzing en investigaciones de aplicaciones web. Dado que la aplicación tiene una estructura modular, tiene la capacidad de añadir rápidamente métodos de evasión de WAF recién encontrados/por encontrar a pFuzz y probarlos en todos los demás WAF. Además de una estructura modular, se han utilizado estructuras como multi-hilo, multiprocesamiento y colas para hacer la herramienta más flexible, y se ha creado la infraestructura para futuros desarrollos.

La herramienta está programada para que una solicitud dada pueda ser analizada y modificada fácilmente a través de un objeto. Gracias a esta estructura, quienes desarrollen la aplicación podrán contribuir fácilmente y desarrollar la herramienta según sus propias necesidades sin cambiar la estructura central de la aplicación y sin tener que aprenderla.


Nota: Si deseas contribuir al desarrollo, no solo puedes hacerlo como desarrollo del núcleo 'core', sino también añadiendo nuevos módulos. ¡Esperamos tus nuevos PR! :)


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

Desarrolladores 💁

Flujo 📋

pFuzz

Instalación y Uso 📚

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

Dependencias:

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

Uso

  • Ayuda
root@kitploit:~
python3 pfuzz.py --help
  • Módulo de Manipulación de Cabeceras
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Módulo de Fuzzing de Caracteres
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Módulo de Fuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Añadir proxy
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Añadir un retardo entre peticiones
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • Habilitar conexión TLS/SSL
root@kitploit:~
python3 pfuzz.py -r request.txt -f -s
  • Habilitar registro (logging)
root@kitploit:~
python3 pfuzz.py -r request.txt -f -l
  • Habilitar función de codificación/codificación completa de payloads
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Establecer multi-hilos
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Salida a la terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Salida a un archivo
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Ayuda 💻

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 📢

Cómo Desarrollar un Nuevo Módulo

  • Debe crearse un archivo Python que especifique el nombre del módulo dentro de la carpeta modules/.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • Puedes usar el objeto analizado como myreq = HTTPReq.getobj()
root@kitploit:~
from reqparser import HTTPReq
myreq  = HTTPReq.getobj()
  • Tiene muchos atributos derivados de la clase HTTPReq. Puedes verlos en reqparser.py.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Si deseas obtener tus payloads desde el archivo Excel, puedes usar los métodos getpayloads de modules.exparse.

    • getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Configuramos objetos estáticos como fuzzsheetName en statics.py que está dentro de la carpeta static/.
    root@kitploit:~
    # Módulo de Fuzzing en static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Ahora, puedes cambiar/añadir/eliminar los atributos como desees.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Para detener el multi-hilo, debes agregar el payload #exitme# al final de tus payloads y establecer statics.exitCall = True para verificar si la cola está vacía o no.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERACIONES]
  • Cuando tu objeto (solicitud) esté listo para ser enviado, puedes usar la función sendit() para ponerlo en la cola.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Si necesitas cambiar funciones centrales en pFuzz, puedes iniciar un pull request o abrir un issue.

Algunas Funciones Importantes para Desarrollar Nuevos Módulos


¿Qué WAFs hemos evadido?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Descargar herramienta

Emre Övünç


Mert Taşçı


Evren Yalçın

PropósitoMódulo/ClaseFunciónParámetro(s)
Enviar una solicitudreqsender.pysendit()object
Usar un objeto de solicitudreqparser.py/HTTPReqgetobj()-
Añadir una cabecera personalizadareqparser.py/HTTPReqOBJECT.addheader()newHeadername,value
Eliminar una cabecerareqparser.py/HTTPReqOBJECT.delheader()headerName
Cambiar una cabecerareqparser.py/HTTPReqOBJECT.changeheader()headerName,newHeaderName
Obtener un payload del archivoexparse.pygetpayloads()sheetName,columnName
Escribir un registro info/debug/warningwaflogger.pyloginfo/logdebug/logwarn()logMessage