Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WuppieFuzz — 基于 LibAFL 开发的覆盖率引导型 REST API 模糊测试器 | Kitploit
工具/GitHubGitHub/tno-s3/wuppiefuzz
漏洞分析API安全测试Web安全模糊测试渗透测试API 安全
GitHubtno-s3/wuppiefuzz

WuppieFuzz

基于 LibAFL 开发的覆盖率引导型 REST API 模糊测试器

查看仓库
21782天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

WuppieFuzz v1.6.0

WuppieFuzz 的徽标。

TNO 开发了 WuppieFuzz,这是一个基于 LibAFL 构建的覆盖率引导型 REST API 模糊测试器。它面向广泛的终端用户,重点关注易用性、 所发现缺陷的可解释性和模块化。WuppieFuzz 支持三种测试模式(黑盒、灰盒和白盒)。

[!NOTE]
如需快速上手的分步指南,请参阅教程!

媒体报道

WuppieFuzz 已在以下媒体中得到报道:

  • The ONE Conference 电子杂志 2024
  • 使用 TNO 的新 REST API 模糊测试器轻松测试你的 API
  • OpenAPI.tools 列表:WuppieFuzz
  • 使用 WuppieFuzz 自动检测 REST API 漏洞(Nordic APIs 在 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 中。

快速安装

如需在主流操作系统(MacOS、Windows、Linux)上快速安装 WuppieFuzz, 请参阅 releases 或使用 brew install wuppiefuzz

快速使用指南

如何使用 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 实际运行中。

在运行 WuppieFuzz 之前,你必须先启动你的(已插桩的)目标 应用程序。

此外,你必须向 WuppieFuzz 提供 OpenAPI 规范, 以便它知道如何生成和变异请求。如需命令行参数的帮助, 请使用以下命令:

root@kitploit:~
$ cargo run -- --help # shows help for required parameters and flags

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

例如,要对带有 JaCoCo 代理的 Java 目标运行 WuppieFuzz, 你需要指定其 OpenAPI 文件(该文件中包含目标在 API 规范中运行 的 URL)。此外,你还需要指定覆盖率格式为 JaCoCo, 并按如下方式给出 classes 目录:

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/ 目录中,你会找到两个示例配置文件, 分别用于为 Java 代码生成 JaCoCo 覆盖率报告,以及为 Python 代码生成 LCOV 覆盖率报告。

报告

当你通过 --report 标志运行 WuppieFuzz 时,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 crate 需要 Z3 4.15+,这比大多数 Linux 发行版软件包管理器 提供的版本更新。请通过 Homebrew 安装 Z3 (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/config.toml 中包含 cargo 别名,这些别名使用 --no-default-features 构建,并链接所有系统库:

root@kitploit:~
cargo dev-build          # build without vendored dependencies
cargo dev-run -- <args>  # run without vendored dependencies
cargo dev-test           # test without vendored dependencies

生成文档

运行 cargo doc --no-deps 可从源代码中的注释生成文档。 文档主页将是 target/doc/wuppiefuzz/index.html

下载工具