Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PyJFuzz — PyJFuzz - фаззер JSON на Python | Kitploit
Инструменты/GitHubGitHub/mseclab/pyjfuzz
Динамический анализ (песочница)Анализ уязвимостейТестирование безопасности APIВеб-безопасностьФаззинг
GitHubmseclab/pyjfuzz

PyJFuzz

PyJFuzz - фаззер JSON на Python

Репозиторий
37767153 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

LOGO

PyJFuzz — это небольшая, расширяемая и готовая к использованию среда для фаззинга JSON-входных данных, таких как REST API мобильных конечных точек, реализации JSON, браузеры, CLI-исполняемые файлы и многое другое.

Версия 1.1.0
Домашняя страница http://www.mseclab.com/
GitHub https://github.com/mseclab/PyJFuzz
Автор Daniele Linguaglossa (@dzonerzy)
Лицензия MIT — (см. файл LICENSE)

Установка

Зависимости

Для своей работы PyJFuzz требует некоторые зависимости: bottle, netifaces, GitPython и gramfuzz. Вы можете установить их автоматически с помощью setup.py.

Установка

Вы можете установить PyJFuzz следующей командой:

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

Документация и примеры

CLI-инструмент

После установки PyJFuzz создаст как библиотеку Python, так и утилиту командной строки с именем pjf (скриншот ниже)

MENU

PJF

Библиотека

PyJFuzz также может работать как библиотека; вы можете импортировать её в свой проект следующим образом:

from pyjfuzz.lib import *

Классы

Доступны следующие объекты/классы:

  • PJFServer — используется для запуска и остановки встроенных HTTP- и HTTPS-серверов.
  • PJFProcessMonitor — используется для мониторинга сбоев процессов; автоматически перезапускает процесс при каждом сбое.
  • PJFTestcaseServer — тестовый сервер используется совместно с PJFProcessMonitor; при сбое процесса тестовый сервер регистрирует и сохраняет JSON, вызвавший сбой.
  • PJFFactory — основной объект для выполнения реального фаззинга JSON-объектов.
  • PJFConfiguration — файл конфигурации для каждого из доступных объектов.
  • PJFExternalFuzzer — используется PJFactory, вспомогательный класс, предоставляющий интерфейс к другим фаззерам командной строки, таким как radamsa.
  • PJFMutation — используется PJFFactory, предоставляет все мутации, используемые во время сеанса фаззинга.
  • PJFExecutor — предоставляет интерфейс для взаимодействия с внешними процессами.

CLASSES

Примеры

Ниже приведены несколько тривиальных примеров реализации программы на базе 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()

Иногда вам может понадобиться изменить стандартные ненастраиваемые параметры, такие как порт HTTPS или HTTP-сервера; это можно сделать следующим образом:

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

Помните: При изменении портов по умолчанию всегда следует обрабатывать исключения, связанные с необходимыми привилегиями!

Ниже представлен полный список всех доступных настроек/параметров объекта PJFConfiguration:

Таблица конфигурации

Имя Тип Описание
json dict JSON-объект для фаззинга
json_file str Путь к JSON-файлу
parameters list<str> Список параметров для фаззинга (взяты из JSON-объекта)
techniques str<int> Строка включённых атак: XSS, LFI и т.д. Например, "CHPTRSX" (см. таблицу техник)
level int Уровень фаззинга в диапазоне 0–6
utf8 bool Если true, переключает кодировку с Unicode на чистое байтовое представление
indent bool Указывает, нужно ли делать отступы в результирующем объекте
url_encode bool Указывает, нужно ли URL-кодировать результирующий объект
strong_fuzz bool Указывает, использовать ли сильный фаззинг (сильный фаззинг не сохраняет структуру JSON; полезен для фаззинга парсеров)
debug bool Указывает, нужно ли включать отладочный вывод
exclude bool Исключает из фаззинга параметры, выбранные параметром parameters
notify bool Указывает, нужно ли уведомлять монитор процессов о сбое; используется только с PJFServer
html str Путь к HTML-каталогу для обслуживания в PJFServer
ext_fuzz bool Указывает, использовать ли бинарный файл из “command” в качестве внешнего фаззера
cmd_fuzz bool Указывает, использовать ли бинарный файл из “command” как цель фаззинга
content_type str Устанавливает тип содержимого результата PJFServer (по умолчанию application/json)
command list<str> Команда для выполнения; каждый параметр — элемент списка; можно использовать shlex.split из Python

Таблица техник

Скачать инструмент