Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
WuppieFuzz — Ein coverage-gesteuerter REST-API-Fuzzer, entwickelt auf Basis von LibAFL | Kitploit
Tools/GitHubGitHub/tno-s3/wuppiefuzz
SchwachstellenanalyseAPI-SicherheitstestsWebsicherheitFuzzingPenetrationstestsAPI-Sicherheit
GitHubtno-s3/wuppiefuzz

WuppieFuzz

Ein coverage-gesteuerter REST-API-Fuzzer, entwickelt auf Basis von LibAFL

Repository anzeigen
2178vor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

WuppieFuzz v1.6.0

Logo von WuppieFuzz.

WuppieFuzz wurde von TNO entwickelt, ein abdeckungsgesteuerter REST-API-Fuzzer auf Basis von LibAFL, der sich an ein breites Publikum von Endanwendern richtet und einen starken Fokus auf Benutzerfreundlichkeit, Erklärbarkeit der entdeckten Schwachstellen und Modularität legt. WuppieFuzz unterstützt alle drei Test-Settings (Blackbox, Greybox und Whitebox).

[!NOTE]
Für eine schnelle Schritt-für-Schritt-Anleitung folgen Sie bitte dem Tutorial!

Medienberichterstattung

WuppieFuzz wurde vorgestellt in:

  • The ONE Conference e-magazine 2024
  • Test your APIs easily with TNO's new REST API fuzzer
  • OpenAPI.tools-Eintrag: WuppieFuzz
  • Automatisierte REST-API-Schwachstellenerkennung mit WuppieFuzz (Nordic APIs auf YouTube)
  • Thoughtworks Technology Radar: WuppieFuzz

Wissenschaftliche Veröffentlichung

Wenn Sie WuppieFuzz in einer wissenschaftlichen Arbeit zitieren möchten, verwenden Sie bitte die bevorzugte Veröffentlichung, die in CITATION.cff aufgeführt ist:

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

Lizenz

WuppieFuzz ist unter Apache-2.0 lizenziert; siehe LICENSE.
Hinweise zu Lizenzen Dritter finden Sie in THIRD_PARTY_NOTICES.

Schnellinstallation

Für eine schnelle Installation von WuppieFuzz auf gängigen Betriebssystemen (macOS, Windows, Linux) siehe Releases oder verwenden Sie brew install wuppiefuzz

Kurzanleitung

Wie verwendet man WuppieFuzz? - YouTube

Voraussetzungen für die Entwicklung

Um das Projekt zu bauen, müssen Sie die folgenden Abhängigkeiten und Werkzeuge installieren:

  • 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

Ausführen

WuppieFuzz in Aktion.

Bevor Sie WuppieFuzz ausführen, müssen Sie Ihre (instrumentierte) Zielanwendung starten.

Zusätzlich müssen Sie WuppieFuzz eine OpenAPI-Spezifikation zur Verfügung stellen, damit es weiß, wie es seine Requests generieren und mutieren kann. Hilfe zu den Befehlszeilenargumenten erhalten Sie mit dem folgenden Befehl:

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

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

Um WuppieFuzz beispielsweise gegen ein Java-Ziel mit angehängtem JaCoCo-Agenten auszuführen, geben Sie dessen OpenAPI-Datei an (die die URL enthält, auf der das Ziel in der API-Spezifikation läuft). Zusätzlich geben Sie an, dass das Coverage-Format JaCoCo ist, und übergeben das Klassenverzeichnis wie folgt:

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

Konfigurationsdatei

Wenn Sie anstelle von Befehlszeilenargumenten oder in Kombination mit diesen eine Konfigurationsdatei verwenden möchten, können Sie das Flag --config <CONFIG_FILE> nutzen. Falls Sie Befehlszeilenargumente in Kombination mit einer Konfigurationsdatei verwenden, haben die Befehlszeilenargumente Vorrang.

Die Konfigurationsdatei sollte eine YAML-Datei sein und für jedes Befehlszeilenargument, das Sie angeben möchten, eine Zeile enthalten, zum Beispiel:

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

Ein Beispiel für einen Ausführungsbefehl könnte in diesem Fall sein:

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

Dieser Befehl kombiniert die Argumente von der Befehlszeile und aus der Konfigurationsdatei. Da das Flag --timeout in beiden angegeben ist, hat der in der Befehlszeile angegebene Timeout (10 Sekunden) Vorrang.

Im Verzeichnis example_configs/ finden Sie zwei Beispiel-Konfigurationsdateien: eine zur Erzeugung von Coverage-Berichten mit JaCoCo für Java-Code und eine zur Erzeugung von Coverage-Berichten mit LCOV für Python-Code.

Berichte

Wenn Sie WuppieFuzz mit dem Flag --report ausführen, wird ein Unterverzeichnis in reports/ mit einem Zeitstempel als Namen erstellt. Alle unterstützten Coverage-Berichte werden in dieses Unterverzeichnis geschrieben. Es gibt zwei Arten von Coverage-Berichten:

  1. Endpunkt-Coverage: Dies kann immer erzeugt werden, da nur die OpenAPI-Spezifikation erforderlich ist.
  2. Code-Coverage: Derzeit nur für JaCoCo unterstützt, aber wir planen, weitere zu unterstützen. Die knifflige Sache ist, dass dies eine Zuordnung von Coverage zu Quelldateien und eine robuste Berichterstellung erfordert, die diese nutzt.

Darüber hinaus wird eine Datenbank mit allen Request-Informationen Ihrer Fuzzing-Kampagne gefüllt. Diese Datenbank kann über das Grafana-Dashboard visualisiert und untersucht werden.

Struktur dieses Repositorys

  • assets: Logos, Bilder usw.
  • coverage_agents: Code und Anweisungen zur Coverage-Erfassung, die auf verschiedene Ziele angewendet werden können.
  • example_configs: Beispiel-Konfigurationsdateien zur Konfiguration von WuppieFuzz.
  • src: Quellcode von WuppieFuzz.
  • tutorial: ein ausführliches und detailliertes Tutorial darüber, wie man ein bestimmtes Ziel fuzzt und wie man Fuzzing-Ergebnisse interpretiert.
  • dashboard: Werkzeuge zur Sichtung der Fuzzing-Ergebnisse und der Leistung.

Weitere Informationen zu jedem dieser Punkte finden Sie in den README-Dateien in diesen Verzeichnissen.

Entwicklungs-Build

Standardmäßig bindet WuppieFuzz seine C-Abhängigkeiten (OpenSSL, SQLite, Z3) ein, sodass ein reguläres cargo build sofort funktioniert. Für schnellere Kompilierung während der Entwicklung können Sie alle eingebundenen Abhängigkeiten deaktivieren und stattdessen gegen systemweit installierte Bibliotheken linken.

[!NOTE] Die z3-Crate erfordert Z3 4.15+, eine neuere Version als die, die von den meisten Paketverwaltern der Linux-Distributionen bereitgestellt wird. Installieren Sie Z3 über Homebrew (brew install z3), um eine kompatible Version zu erhalten.

Systemabhängigkeiten

Installieren Sie die folgenden Bibliotheken auf Ihrem System:

Debian/Ubuntu:

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

Unter Linux installiert Homebrew in einen nicht standardmäßigen Pfad. Fügen Sie dessen Bibliotheksverzeichnis zu Ihrer Umgebung hinzu, damit Compiler und Laufzeitlinker Z3 finden können:

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] Fügen Sie die obigen Zeilen zu Ihrer ~/.bashrc oder ~/.zshrc hinzu, um sie dauerhaft zu machen.

Fedora (42+):

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

macOS (Homebrew):

root@kitploit:~
brew install openssl sqlite z3

Cargo-Aliase

Das Repository enthält Cargo-Aliase in .cargo/config.toml, die mit --no-default-features bauen und gegen alle Systembibliotheken linken:

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

Dokumentation erzeugen

Mit cargo doc --no-deps wird die Dokumentation aus Kommentaren im Quellcode erzeugt. Die Hauptseite der Dokumentation befindet sich unter target/doc/wuppiefuzz/index.html.

Tool herunterladen