Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
WuppieFuzz — Um fuzzer de API REST guiado por cobertura desenvolvido sobre LibAFL. | Kitploit
Ferramentas/GitHubGitHub/tno-s3/wuppiefuzz
Análise de VulnerabilidadesTestes de Segurança de APIsSegurança WebFuzzingTestes de PenetraçãoSegurança de API
GitHubtno-s3/wuppiefuzz

WuppieFuzz

Um fuzzer de API REST guiado por cobertura desenvolvido sobre LibAFL.

Ver Repositório
2178há 2 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

WuppieFuzz v1.6.0

Logo of WuppieFuzz.

A TNO desenvolveu o WuppieFuzz, um fuzzer de API REST guiado por cobertura, desenvolvido sobre o LibAFL, direcionado a um público amplo de utilizadores finais, com um forte foco em facilidade de utilização, explicabilidade das falhas descobertas e modularidade. O WuppieFuzz suporta as três modalidades de teste (caixa preta, caixa cinzenta e caixa branca).

[!NOTE]
Para uma orientação rápida e interativa, siga o tutorial!

Cobertura mediática

O WuppieFuzz foi destacado em:

  • 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

Publicação científica

Se pretender citar o WuppieFuzz em trabalhos académicos, utilize a publicação preferencial listada em 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

Licença

O WuppieFuzz é licenciado sob Apache-2.0; consulte LICENSE.
Os avisos de licenças de terceiros estão listados em THIRD_PARTY_NOTICES.

Instalação rápida

Para instalação rápida do WuppieFuzz em sistemas operativos populares (MacOS, Windows, Linux), consulte releases ou utilize brew install wuppiefuzz

Breve guia de utilização

How to use WuppieFuzz? - YouTube

Pré-requisitos para desenvolvimento

Para compilar o projeto, é necessário instalar as seguintes dependências e ferramentas

  • 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

Executar

WuppieFuzz in action.

Antes de executar o WuppieFuzz, tem de iniciar a sua aplicação alvo (instrumentada).

Além disso, deve fornecer ao WuppieFuzz uma especificação OpenAPI para que ele saiba como gerar e mutar os seus pedidos. Para obter ajuda sobre os argumentos de linha de comandos, utilize o seguinte:

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

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

Por exemplo, para executar o WuppieFuzz contra um alvo Java com o agente JaCoCo anexado, especifique o seu ficheiro OpenAPI (contendo o URL onde o alvo está a ser executado na especificação da API). Além disso, especifique que o formato de cobertura é JaCoCo e indique o diretório de classes da seguinte forma:

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

Ficheiro de configuração

Se pretender utilizar um ficheiro de configuração em vez de/em combinação com os argumentos de linha de comandos, pode utilizar a flag --config <CONFIG_FILE>. Caso utilize argumentos de linha de comandos em combinação com um ficheiro de configuração, os argumentos de linha de comandos têm precedência.

O ficheiro de configuração deve ser um ficheiro yaml e conter uma linha para cada argumento de linha de comandos que pretenda especificar, por exemplo:

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

Um exemplo de comando de execução poderia, neste caso, ser:

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

Esta linha combinaria os argumentos da linha de comandos e do ficheiro de configuração. Uma vez que a flag --timeout é especificada em ambos, o tempo limite especificado na linha de comandos (10 segundos) terá precedência.

No diretório example_configs/ encontrará dois ficheiros de configuração de exemplo para gerar relatórios de cobertura com JaCoCo para código Java e para gerar relatórios de cobertura com LCOV para código Python.

Relatórios

Quando executa o WuppieFuzz com a flag --report, é criado um subdiretório dentro de reports/ com um carimbo de data/hora como nome. Todos os relatórios de cobertura suportados são escritos nesse subdiretório. Existem dois tipos de relatórios de cobertura:

  1. cobertura de endpoints: pode ser sempre gerada, pois apenas requer a especificação OpenAPI.
  2. cobertura de código: atualmente suportada apenas para JaCoCo, mas pretendemos suportar mais. A parte complicada é que isto requer um mapeamento da cobertura para os ficheiros de código-fonte e uma geração robusta de relatórios que utilize esse mapeamento.

Além disso, uma base de dados é preenchida com todas as informações de pedidos relacionadas com a sua campanha de fuzzing. Esta base de dados pode ser visualizada e explorada através do painel Grafana.

Estrutura deste repositório

  • assets: logótipos, imagens, etc.
  • coverage_agents: código e instruções para rastreio de cobertura a aplicar em vários alvos
  • example_configs: ficheiros de configuração de exemplo para configurar o WuppieFuzz
  • src: código-fonte do WuppieFuzz
  • tutorial: um tutorial aprofundado e de baixo nível sobre como fazer fuzzing a um alvo específico e como interpretar os resultados do fuzzing
  • dashboard: ferramentas para triagem dos resultados do fuzzing e do desempenho

Para mais informações sobre cada um destes itens, consulte os READMEs nesses diretórios.

Compilação de desenvolvimento

Por predefinição, o WuppieFuzz agrega as suas dependências C (OpenSSL, SQLite, Z3) para que um cargo build normal funcione imediatamente. Para uma compilação mais rápida durante o desenvolvimento, pode desativar todas as dependências agregadas e ligar a bibliotecas instaladas no sistema.

[!NOTE] A crate z3 requer Z3 4.15+, que é mais recente do que a versão distribuída pela maioria dos gestores de pacotes das distribuições Linux. Instale o Z3 através do Homebrew (brew install z3) para obter uma versão compatível.

Dependências do sistema

Instale as seguintes bibliotecas no seu sistema:

Debian/Ubuntu:

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

No Linux, o Homebrew instala num caminho não padrão. Adicione o diretório das suas bibliotecas ao seu ambiente para que o compilador e o linker em tempo de execução consigam encontrar o 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] Adicione as linhas acima ao seu ~/.bashrc ou ~/.zshrc para as tornar permanentes.

Fedora (42+):

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

macOS (Homebrew):

root@kitploit:~
brew install openssl sqlite z3

Aliases do Cargo

O repositório inclui aliases do cargo em .cargo/config.toml que compilam com --no-default-features, ligando a todas as bibliotecas do sistema:

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

Gerar documentação

cargo doc --no-deps para gerar documentação a partir dos comentários no código- fonte. A página principal da documentação será target/doc/wuppiefuzz/index.html

Baixar ferramenta