Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PyJFuzz — PyJFuzz - Fuzzer de JSON en Python | Kitploit
Herramientas/GitHubGitHub/mseclab/pyjfuzz
Análisis Dinámico (Sandboxing)Análisis de VulnerabilidadesPruebas de Seguridad de APIsSeguridad WebFuzzing
GitHubmseclab/pyjfuzz

PyJFuzz

PyJFuzz - Fuzzer de JSON en Python

Ver Repositorio
3776748hace 3 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

LOGO

PyJFuzz es un framework pequeño, extensible y listo para usar que se utiliza para fuzzear entradas JSON, como API REST de endpoints móviles, implementación JSON, navegadores, ejecutables de línea de comandos y mucho más.

Versión 1.1.0
Página principal http://www.mseclab.com/
GitHub https://github.com/mseclab/PyJFuzz
Autor Daniele Linguaglossa (@dzonerzy)
Licencia MIT - (ver archivo LICENSE)

Instalación

Dependencias

Para funcionar, PyJFuzz necesita algunas dependencias: bottle, netifaces, GitPython y gramfuzz. Puede instalarlas desde la instalación automática de setup.py.

Instalación

Puede instalar PyJFuzz con el siguiente comando

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

Documentación y Ejemplos

Herramienta CLI

Una vez instalado, PyJFuzz creará tanto una librería de Python como una utilidad de línea de comandos llamada pjf (captura de pantalla a continuación)

MENU

PJF

Librería

PyJFuzz también puede funcionar como una librería. Puede importarlo en su proyecto de la siguiente manera

from pyjfuzz.lib import *

Clases

Los objetos/clases disponibles son los siguientes:

  • PJFServer - Se usa para iniciar y detener los servidores HTTP y HTTPS integrados
  • PJFProcessMonitor - Se usa para monitorear fallos de procesos, reiniciará automáticamente el proceso cada vez que falle
  • PJFTestcaseServer - El servidor de casos de prueba se usa junto con PJFProcessMonitor. Cada vez que un proceso falla, el servidor de casos de prueba registrará y almacenará el JSON que causó el fallo.
  • PJFFactory - Es el objeto principal que se usa para realizar el fuzzing real de objetos JSON.
  • PJFConfiguration - Es el archivo de configuración para cada uno de los objetos disponibles.
  • PJFExternalFuzzer - Utilizado por PJFactory, es una clase auxiliar que proporciona una interfaz para otros fuzzers de línea de comandos como radamsa.
  • PJFMutation - Utilizado por PJFFactory, proporciona todas las mutaciones utilizadas durante la sesión de fuzzing.
  • PJFExecutor - Proporciona una interfaz para interactuar con procesos externos.

CLASSES

Ejemplos

A continuación, algunos ejemplos triviales de cómo implementar un programa impulsado por 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()

A veces, es posible que necesite modificar configuraciones estándar no personalizables, como el puerto del servidor HTTPS o HTTP. Esto se puede hacer de la siguiente manera

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

Recuerde: Al cambiar los puertos predeterminados, siempre debe manejar las excepciones debido a los privilegios necesarios.

A continuación, una lista completa de todas las configuraciones/personalizaciones disponibles del objeto PJFConfiguration:

Tabla de configuración

Nombre Tipo Descripción
json dict Objeto JSON a fuzzear
json_file str Ruta a un archivo JSON
parameters list<str> Lista de parámetros a fuzzear (tomados del objeto JSON)
techniques str<int> Cadena de ataques habilitados, utilizada para generar JSON fuzzeado, como XSS, LFI, etc. Ejemplo: "CHPTRSX" (consulte la tabla de técnicas)
level int Nivel de fuzzing en el rango 0-6
utf8 bool Si es verdadero, cambia de codificación unicode a representación de bytes pura
indent bool Establece si se debe indentar el objeto resultante
url_encode bool Establece si se debe codificar URL el objeto resultante
strong_fuzz bool Establece si se debe usar strong fuzzing (strong fuzzing no mantiene la estructura JSON, útil para fuzzing de parsers)
debug bool Establece si se deben habilitar impresiones de depuración
exclude bool Excluir del fuzzing los parámetros seleccionados por la opción de parámetros
notify bool Establece si se debe notificar al monitor de procesos cuando ocurre un fallo; solo se usa con PJFServer
html str Ruta a un directorio HTML para servir dentro de PJFServer
ext_fuzz bool Establece si se debe usar el binario de "command" como fuzzer externo
cmd_fuzz bool Establece si se debe usar el binario de "command" como objetivo del fuzzer
content_type str Establece el tipo de contenido resultado de PJFServer (por defecto application/json)
command list<str> Comando a ejecutar; cada parámetro es un elemento de lista, puede usar shlex.split de Python

Tabla de técnicas

Descargar herramienta