Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pFuzz — Fuzzer modular de bypass de WAF com multi-threading, manipulação de requisições e codificação de payload para testes de aplicações web em red team. | Kitploit
Ferramentas/GitHubGitHub/redsection/pfuzz
Bypass de WAFSegurança WebFuzzingTestes de PenetraçãoRed Teaming
GitHubredsection/pfuzz

pFuzz

Fuzzer modular de bypass de WAF com multi-threading, manipulação de requisições e codificação de payload para testes de aplicações web em red team.

Ver Repositório
16131há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

O que é pFuzz / O que é pFuzz? ❓

pFuzz é uma ferramenta avançada de fuzzing para red team que desenvolvemos para nossa pesquisa. Ela nos ajuda a contornar firewalls de aplicações web usando diferentes métodos simultaneamente.

pFuzz é uma ferramenta avançada de fuzzing que desenvolvemos para pesquisas em aplicações web. Foi desenvolvida para acelerar o processo de testar vários métodos de ataque em diferentes aplicações de segurança.

Descrição [EN]

pFuzz é uma ferramenta desenvolvida em Python para ter capacidade avançada de fuzzing em pesquisas de aplicações web. Como a aplicação possui uma estrutura modular, ela tem a capacidade de adicionar rapidamente novos métodos de bypass de WAF encontrados/ a serem encontrados ao pFuzz e testá-los em todos os outros WAFs. Além de uma estrutura modular, foram utilizados multi-threading, multi-processing e estruturas de fila para tornar a ferramenta mais flexível, e a infraestrutura foi criada para desenvolvimentos futuros.

A ferramenta é programada para que uma requisição fornecida possa ser analisada (parseada) e facilmente alterada através de um objeto. Graças a essa estrutura, aqueles que desenvolverão a aplicação poderão contribuir facilmente e desenvolver a ferramenta de acordo com suas próprias necessidades, sem alterar a estrutura principal da aplicação e sem precisar aprendê-la.


Nota: Se você quiser contribuir para o desenvolvimento, pode fazê-lo não apenas desenvolvendo o pFuzz, mas também adicionando novos módulos. Sinta-se à vontade para abrir novos PRs :)


Descrição [TR]

pFuzz é uma ferramenta desenvolvida em Python para ter capacidade avançada de fuzzing em pesquisas de aplicações web. Como a aplicação possui uma estrutura modular, ela tem a capacidade de adicionar rapidamente novos métodos de bypass de WAF encontrados/ a serem encontrados ao pFuzz e testá-los em todos os outros WAFs. Além de uma estrutura modular, foram utilizados multi-threading, multi-processing e estruturas de fila para tornar a ferramenta mais flexível, e a infraestrutura foi criada para desenvolvimentos futuros.

A ferramenta é programada para que uma requisição fornecida possa ser analisada (parseada) e facilmente alterada através de um objeto. Graças a essa estrutura, aqueles que desenvolverão a aplicação poderão contribuir facilmente e desenvolver a ferramenta de acordo com suas próprias necessidades, sem alterar a estrutura principal da aplicação e sem precisar aprendê-la.


Nota: Se você deseja contribuir com o desenvolvimento, pode fazê-lo não apenas como desenvolvimento 'core', mas também adicionando novos módulos. Aguardamos seus novos PRs :)


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

Desenvolvedores 💁

Fluxo 📋

pFuzz

Instalação e Uso 📚

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

Dependências:

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

  • Ajuda
root@kitploit:~
python3 pfuzz.py --help
  • Módulo de Manipulação de Cabeçalhos
root@kitploit:~
python3 pfuzz.py -r request.txt -m
  • Módulo de Charfuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -cf
  • Módulo de Fuzzing
root@kitploit:~
python3 pfuzz.py -r request.txt -f
  • Adicionar proxy
root@kitploit:~
python3 pfuzz.py -r request.txt -f --proxy 127.0.0.1:8080
  • Adicionar um atraso entre requisições
root@kitploit:~
python3 pfuzz.py -r request.txt -f -d 3
  • Habilitar conexão 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 codificação de payload / função de codificação completa
root@kitploit:~
python3 pfuzz.py -r request.txt -f -e
root@kitploit:~
python3 pfuzz.py -r request.txt -f -fe
  • Definir multi-threads
root@kitploit:~
python3 pfuzz.py -r request.txt -f -t 5
  • Saída para o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o terminal
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od terminal
  • Saída para um arquivo
root@kitploit:~
python3 pfuzz.py -r request.txt -f -o ~/Desktop/
root@kitploit:~
python3 pfuzz.py -r request.txt -f -od ~/tmp/

Ajuda 💻

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 📢

Como Desenvolver um Novo Módulo

  • Um arquivo Python que especifica o nome do módulo deve ser criado dentro da pasta modules/.
root@kitploit:~
- modules
        - charfuzzer.py
        - exparse.py
        - fuzzer.py
        - headeroperations.py
        - manupilatingheaders.py
  • Você pode usar o objeto analisado (parseado) como myreq = HTTPReq.getobj()
root@kitploit:~
from reqparser import HTTPReq
myreq  = HTTPReq.getobj()
  • Ele possui muitos atributos derivados da classe HTTPReq. Você pode vê-los em reqparser.py.
root@kitploit:~
...
myreq.uri
myreq.body
myreq.http
myreq.referer
myreq.origin
myreq.host
myreq.cookie
...
  • Se você quiser obter seus payloads do Excel, pode usar os métodos getpayloads vindos de modules.exparse.

    • getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    root@kitploit:~
    from modules.exparse import getpayloads
    getpayloads(fuzzsheetName, genericcolmnName, fuzzingpayloads)
    
    • Nós definimos objetos estáticos como fuzzsheetName no statics.py que está dentro da pasta static/.
    root@kitploit:~
    # Fuzzing Module in static/statics.py
    fuzzsheetName   = 'Fuzzing'
    genericcolmnName = 'Payload'
    fuzzingpayloads = []
    
  • Agora, você pode alterar/adicionar/excluir atributos conforme desejar.

root@kitploit:~
myreq.uri = tmpuri + payload
myreq.addheader(header, "127.0.0.1")
myreq.content_type = "text/html"
  • Para parar o multi-threading, você deve adicionar o payload #exitme# ao final de seus payloads e definir statics.exitCall = True para verificar se a fila está vazia ou não.
root@kitploit:~
from modules.exparse import getpayloads
for payload in fuzzingpayloads:
if payload == '#exitme#':
    statics.exitCall = True
else:
    [OPERATIONS]
  • Quando seu objeto (requisição) estiver pronto para ser enviado, você pode usar a função sendit() para enfileirá-lo.
root@kitploit:~
from reqsender import sendit
sendit(myreq)
  • Se você precisar alterar funções principais no pFuzz, pode abrir um pull request ou abrir uma issue.

Algumas Funções Importantes para Desenvolver Novos Módulos


Quais WAFs contornamos?

  • FortiWeb
  • Cloudflare
  • Sucuri
  • Akamai
  • Imperva
  • F5 WAF
Baixar ferramenta

Emre Övünç


Mert Taşçı


Evren Yalçın

ObjetivoMódulo/ClasseFunçãoParâmetro(s)
Enviar uma requisiçãoreqsender.py sendit()object
Usar um objeto de requisiçãoreqparser.py/HTTPReq getobj()  -
Adicionar um cabeçalho personalizadoreqparser.py/HTTPReq OBJECT.addheader() newHeadername,value
Excluir um cabeçalhoreqparser.py/HTTPReq OBJECT.delheader() headerName
Alterar um cabeçalhoreqparser.py/HTTPReq OBJECT.changeheader()headerName,newHeaderName
Obter um payload do arquivoexparse.py getpayloads() sheetName,columnName
Escrever um log de info/debug/warningwaflogger.py loginfo/logdebug/logwarn() logMessage