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

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

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

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

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

Категории

Все категории
Loading categories
WuppieFuzz — Управляемый покрытием фаззер REST API, разработанный на основе LibAFL | Kitploit
Инструменты/GitHubGitHub/tno-s3/wuppiefuzz
Анализ уязвимостейТестирование безопасности APIВеб-безопасностьФаззингТестирование на ПроникновениеБезопасность API
GitHubtno-s3/wuppiefuzz

WuppieFuzz

Управляемый покрытием фаззер REST API, разработанный на основе LibAFL

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

Популярное

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

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

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

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

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

WuppieFuzz v1.7.1

Logo of WuppieFuzz.

TNO разработала WuppieFuzz — фаззер REST API с управлением покрытием, созданный на основе LibAFL, ориентированный на широкую аудиторию конечных пользователей, с сильным акцентом на простоту использования, объяснимость обнаруженных уязвимостей и модульность. WuppieFuzz поддерживает все три режима тестирования (чёрный ящик, серый ящик и белый ящик).

[!NOTE]
Для быстрого пошагового руководства, пожалуйста, следуйте учебнику!

Освещение в СМИ

WuppieFuzz был представлен в:

  • The ONE Conference e-magazine 2024
  • Test your APIs easily with TNO's new REST API fuzzer
  • OpenAPI.tools listing: WuppieFuzz
  • Automated REST API Vulnerability Detection with WuppieFuzz (Nordic APIs on YouTube)
  • Thoughtworks Technology Radar: WuppieFuzz

Научная публикация

Если вы хотите процитировать WuppieFuzz в академической работе, пожалуйста, используйте предпочтительную публикацию, указанную в :

CITATION.cff

Rooijakkers, T., Nijsten, A., Daniele, C., Weitenberg, E., Groenewegen, R., & Melissen, A. (2026). WuppieFuzz: Coverage-Guided, Stateful REST API Fuzzing. In Proceedings of the 12th International Conference on Information Systems Security and Privacy (ICISSP), Volume 2, 221-231. SciTePress. https://doi.org/10.5220/0000217100004061

Лицензия

WuppieFuzz лицензирован под Apache-2.0; см. LICENSE.
Уведомления о сторонних лицензиях перечислены в THIRD_PARTY_NOTICES.

Быстрая установка

Для быстрой установки WuppieFuzz на популярные операционные системы (MacOS, Windows, Linux) см. релизы или используйте brew install wuppiefuzz

Краткая инструкция

How to use WuppieFuzz? - YouTube

Предварительные требования для разработки

Для сборки проекта необходимо установить следующие зависимости и инструменты:

  • build-essential sudo apt install build-essential
  • pkg-config sudo apt install pkg-config
  • Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Запуск

WuppieFuzz in action.

Перед запуском WuppieFuzz необходимо запустить ваше (инструментированное) целевое приложение.

Кроме того, вы должны предоставить WuppieFuzz OpenAPI-спецификацию, чтобы он знал, как генерировать и мутировать свои запросы. Для справки по аргументам командной строки используйте следующее:

root@kitploit:~
$ cargo run -- --help # показывает справку по требуемым параметрам и флагам

Usage: wuppiefuzz [OPTIONS] [OPENAPI_SPEC.YAML]
...

Например, чтобы запустить WuppieFuzz против Java-цели с подключённым агентом JaCoCo, укажите его OpenAPI-файл (содержащий URL, на котором работает цель, в спецификации API). Кроме того, укажите, что формат покрытия — JaCoCo, и задайте каталог классов следующим образом:

root@kitploit:~
cargo run -- fuzz openapi.yaml --coverage-format jacoco --jacoco-class-dir ../Targets/app/target/classes/

Файл конфигурации

Если вы хотите использовать файл конфигурации вместо/в сочетании с аргументами командной строки, вы можете использовать флаг --config <CONFIG_FILE>. Если вы используете аргументы командной строки в сочетании с файлом конфигурации, аргументы командной строки имеют приоритет.

Файл конфигурации должен быть YAML-файлом и содержать строку для каждого аргумента командной строки, который вы хотите указать, например:

root@kitploit:~
coverage_format: jacoco
output_format: human-readable
source_dir: "/swagger-petstore/src/main/java"
jacoco_class_dir: "/swagger-petstore/target"
timeout: 20

Пример команды запуска в этом случае может быть таким:

root@kitploit:~
$ cargo run -- fuzz --config=config.yaml --report --coverage-host=localhost:6300 --timeout=10 ./openapi.yaml

Эта строка объединит аргументы из командной строки и из файла конфигурации. Поскольку флаг --timeout указан в обоих местах, таймаут, заданный в командной строке (10 секунд), будет иметь приоритет.

В каталоге example_configs/ вы найдёте два примера файлов конфигурации для генерации отчётов о покрытии с помощью JaCoCo для Java-кода и для генерации отчётов о покрытии с помощью LCOV для Python-кода.

Отчёты

Когда вы запускаете WuppieFuzz с флагом --report, внутри reports/ создаётся подкаталог с именем, содержащим временную метку. Все поддерживаемые отчёты о покрытии записываются в этот подкаталог. Существует два типа отчётов о покрытии:

  1. покрытие конечных точек: может быть сгенерировано всегда, поскольку требует только OpenAPI-спецификацию.
  2. покрытие кода: в настоящее время поддерживается только для JaCoCo, но мы стремимся поддерживать больше. Сложность в том, что это требует сопоставления покрытия с исходными файлами и надёжной генерации отчётов, использующей это.

Кроме того, база данных заполняется всей информацией о запросах, связанных с вашей кампанией фаззинга. Эту базу данных можно визуализировать и исследовать через панель Grafana.

Структура этого репозитория

  • assets: логотипы, изображения и т.д.
  • coverage_agents: код и инструкции для отслеживания покрытия, которые можно накладывать на различные цели
  • example_configs: примеры файлов конфигурации для настройки WuppieFuzz
  • src: исходный код WuppieFuzz
  • tutorial: подробный и низкоуровневый учебник о том, как фаззить конкретную цель и как интерпретировать результаты фаззинга
  • dashboard: инструменты для триажа результатов фаззинга и производительности

Для получения дополнительной информации о каждом из них см. README в этих каталогах.

Сборка для разработки

По умолчанию WuppieFuzz поставляет свои C-зависимости (OpenSSL, SQLite, Z3), так что обычная cargo build работает из коробки. Для более быстрой компиляции во время разработки вы можете отключить все поставляемые зависимости и вместо этого связаться с системными библиотеками.

[!NOTE] Крейт z3 требует Z3 4.15+, что новее версии, поставляемой большинством менеджеров пакетов дистрибутивов Linux. Установите Z3 через Homebrew (brew install z3), чтобы получить совместимую версию.

Системные зависимости

Установите следующие библиотеки в вашей системе:

Debian/Ubuntu:

root@kitploit:~
sudo apt install libssl-dev libsqlite3-dev
brew install z3  # apt's libz3-dev is too old; use Homebrew instead

На Linux Homebrew устанавливается в нестандартный путь. Добавьте его каталог библиотек в ваше окружение, чтобы компилятор и динамический компоновщик могли найти Z3:

root@kitploit:~
eval "$(brew shellenv)"
export LIBRARY_PATH="$(brew --prefix z3)/lib:$LIBRARY_PATH"
export LD_LIBRARY_PATH="$(brew --prefix z3)/lib:$LD_LIBRARY_PATH"

[!TIP] Добавьте строки выше в ваш ~/.bashrc или ~/.zshrc, чтобы сделать их постоянными.

Fedora (42+):

root@kitploit:~
sudo dnf install openssl-devel sqlite-devel z3-devel

macOS (Homebrew):

root@kitploit:~
brew install openssl sqlite z3

Псевдонимы Cargo

Репозиторий включает псевдонимы cargo в .cargo/config.toml, которые собирают с --no-default-features, связываясь со всеми системными библиотеками:

root@kitploit:~
cargo dev-build          # сборка без поставляемых зависимостей
cargo dev-run -- <args>  # запуск без поставляемых зависимостей
cargo dev-test           # тестирование без поставляемых зависимостей

Генерация документации

cargo doc --no-deps для генерации документации из комментариев в исходном коде. Главная страница документации будет target/doc/wuppiefuzz/index.html

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