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

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

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

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

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

Категории

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

WuppieFuzz

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

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

Популярное

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

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

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

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

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

WuppieFuzz v1.8.0

Logo of WuppieFuzz.

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

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

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

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) см. releases или используйте brew install wuppiefuzz

Docker

Вы можете собрать docker-образ командой docker build . -t wuppiefuzz:local. Чтобы использовать его, необходимо смонтировать папку, содержащую вашу openapi-спецификацию. При фаззинге сервиса, запущенного локально (не в Docker), необходимо указать host networking:

docker run \
  --network host \
  -v ./fuzzing-folder:/fuzzing-folder \  # The folder will be populated with wuppiefuzz outputs
  -w /fuzzing-folder \
  wuppiefuzz:local fuzz --timeout 60 --report openapi.json

Краткое руководство

How to use WuppieFuzz? - YouTube

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

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

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

Запуск

WuppieFuzz in action.

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

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

$ cargo run -- --help # shows help for required parameters and flags

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

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

cargo run -- fuzz openapi.yaml --coverage-format jacoco --jacoco-class-dir ../Targets/app/target/classes/

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

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

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

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

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

$ 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:

sudo apt install libssl-dev libsqlite3-dev
brew install z3  # apt's libz3-dev is too old; use Homebrew instead
Скачать инструмент