Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
PyJFuzz — PyJFuzz - Fuzzer JSON em Python | Kitploit
Ferramentas/GitHubGitHub/mseclab/pyjfuzz
Análise Dinâmica (Sandboxing)Análise de VulnerabilidadesTestes de Segurança de APIsSegurança WebFuzzing
GitHubmseclab/pyjfuzz

PyJFuzz

PyJFuzz - Fuzzer JSON em Python

Ver Repositório
3776715há 3 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

LOGO

PyJFuzz é um framework pequeno, extensível e pronto para uso utilizado para fuzzar entradas JSON, como endpoints REST API de dispositivos móveis, implementações JSON, navegadores, executáveis de linha de comando e muito mais.

Versão 1.1.0
Homepage http://www.mseclab.com/
Github https://github.com/mseclab/PyJFuzz
Autor Daniele Linguaglossa (@dzonerzy)
Licença MIT - (veja o arquivo LICENSE)

Instalação

Dependências

Para funcionar, o PyJFuzz precisa de algumas dependências: bottle, netifaces, GitPython e gramfuzz. Você pode instalá-las através da instalação automática do setup.py.

Instalação

Você pode instalar o PyJFuzz com o seguinte comando:

git clone https://github.com/mseclab/PyJFuzz.git && cd PyJFuzz && sudo python setup.py install

Documentação e Exemplos

Ferramenta CLI

Após a instalação, o PyJFuzz criará tanto uma biblioteca Python quanto um utilitário de linha de comando chamado pjf (captura de tela abaixo)

MENU

PJF

Biblioteca

PyJFuzz também pode funcionar como uma biblioteca. Você pode importá-la em seu projeto da seguinte forma:

from pyjfuzz.lib import *

Classes

Os objetos/classes disponíveis são os seguintes:

  • PJFServer - Usado para iniciar e parar servidores HTTP e HTTPS embutidos
  • PJFProcessMonitor - Usado para monitorar falhas de processo; reiniciará automaticamente o processo sempre que ele falhar
  • PJFTestcaseServer - O servidor de testcase é usado em conjunto com o PJFProcessMonitor; sempre que um processo falha, o servidor de testcase registra e armazena o JSON que causou a falha
  • PJFFactory - É o objeto principal usado para realizar o fuzz real de objetos JSON
  • PJFConfiguration - É o arquivo de configuração para cada um dos objetos disponíveis
  • PJFExternalFuzzer - Usado pelo PJFactory, é uma classe auxiliar que fornece uma interface para outros fuzzers de linha de comando, como radamsa
  • PJFMutation - Usado pelo PJFFactory, fornece todas as mutações usadas durante a sessão de fuzzing
  • PJFExecutor - Fornece uma interface para interagir com processos externos

CLASSES

Exemplos

Abaixo alguns exemplos triviais de como implementar um programa alimentado pelo PyJFuzz:

simple_fuzzer.py

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6))
fuzzer = PJFFactory(config)
while True:
    print fuzzer.fuzzed

custom_techniques.py

from argparse import Namespace
from pyjfuzz.lib import *

# Techniques may be defined by group , or by technique number
# groups are CHTPRSX , to understand what they are , please run pyjfuzz with -h switch or look at the command line screenshot
# This below will initalizate a config object which use only the P group attacks where P stay for Path Traversal
config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, techniques="P"))
# once a config object is defined you can access to config.techniques to view the selected techniques for your group
print("Techniques IDs: {0}".format(str(config.techniques)))
# you can eventually modify them!
config.techniques = [2]
# This way only attack number 2 (LFI Attack) will be performed!
fuzzer = PJFFactory(config)
while True:
    print fuzzer.fuzzed

simple_server.py

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, debug=True, indent=True))
PJFServer(config).run()

Às vezes você pode precisar modificar configurações padrão não personalizáveis, como a porta do servidor HTTPS ou HTTP. Isso pode ser feito da seguinte maneira:

from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, indent=True))
print config.ports["servers"]["HTTP_PORT"]   # 8080
print config.ports["servers"]["HTTPS_PORT"]  # 8443
print config.ports["servers"]["TCASE_PORT"]  # 8888
config.ports["servers"]["HTTPS_PORT"] = 443  # Change HTTPS port to 443

Lembre-se: Ao alterar as portas padrão, você deve sempre tratar exceções devido aos privilégios necessários!

Abaixo uma lista abrangente de todas as configurações/personalizações disponíveis do objeto PJFConfiguration:

Tabela de configuração

Nome Tipo Descrição
json dict Objeto JSON para fuzzar
json_file str Caminho para um arquivo JSON
parameters list<str> Lista de parâmetros para fuzzar (extraídos do objeto JSON)
techniques str<int> String de ataques habilitados, usada para gerar JSON fuzzado, como XSS, LFI etc. Ex.: "CHPTRSX" (Veja a tabela de técnicas)
level int Nível de fuzzing no intervalo 0-6
utf8 bool Se verdadeiro, alterna de codificação unicode para representação pura de bytes
indent bool Define se deve indentar o objeto resultante
url_encode bool Define se deve aplicar URLEncode ao objeto resultante
strong_fuzz bool Define se deve usar strong fuzzing (strong fuzzing não manterá a estrutura JSON, útil para fuzzing de parsers)
debug bool Define se deve habilitar impressões de depuração
exclude bool Excluir do fuzzing os parâmetros selecionados pela opção de parâmetros
notify bool Define se deve notificar o monitor de processo quando ocorrer uma falha, usado apenas com PJFServer
html str Caminho para um diretório HTML a ser servido dentro do PJFServer
ext_fuzz bool Define se deve usar o binário de "command" como um fuzzer externo
cmd_fuzz bool Define se deve usar o binário de "command" como alvo do fuzzer
content_type str Define o tipo de conteúdo do resultado do PJFServer (padrão application/json)
command list<str> Comando a executar; cada parâmetro é um elemento da lista. Você pode usar shlex.split do Python

Tabela de técnicas

Baixar ferramenta