Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 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
217831há 3 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.8.0

Logo do WuppieFuzz.

A TNO desenvolveu o WuppieFuzz, um fuzzer de API REST guiado por cobertura, construído sobre o LibAFL, direcionado a um amplo público de usuários finais, com forte foco em facilidade de uso, explicabilidade das falhas descobertas e modularidade. O WuppieFuzz suporta os três modos de teste (caixa preta, caixa cinza e caixa branca).

[!NOTE]
Para um guia rápido e passo a passo, siga o tutorial!

Cobertura na mídia

O WuppieFuzz foi destaque em:

  • The ONE Conference e-magazine 2024
  • Teste suas APIs facilmente com o novo fuzzer de API REST da TNO
  • Listagem no OpenAPI.tools: WuppieFuzz
  • Detecção automatizada de vulnerabilidades em APIs REST com WuppieFuzz (Nordic APIs no YouTube)
  • Thoughtworks Technology Radar: WuppieFuzz

Publicação científica

Se você quiser citar o WuppieFuzz em trabalhos acadêmicos, use 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 uma instalação rápida do WuppieFuzz nos principais sistemas operacionais (MacOS, Windows, Linux), consulte as releases ou use brew install wuppiefuzz

Docker

Você pode construir a imagem Docker com docker build . -t wuppiefuzz:local. Para usá-la, você deve montar uma pasta contendo sua especificação OpenAPI. Ao fuzzear um serviço que você está executando localmente (não no Docker), você precisa especificar o 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

Guia rápido

Como usar o WuppieFuzz? - YouTube

Pré-requisitos para desenvolvimento

Para construir o projeto, você precisa instalar as seguintes dependências e ferramentas:

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

Execução

WuppieFuzz em ação.

Antes de executar o WuppieFuzz, você precisa iniciar sua aplicação alvo (instrumentada).

Além disso, você deve fornecer ao WuppieFuzz uma especificação OpenAPI para que ele saiba como gerar e mutar suas requisições. Para obter ajuda sobre os argumentos de linha de comando, use o seguinte:

$ 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, você especifica seu arquivo OpenAPI (contendo a URL em que o alvo está sendo executado na especificação da API). Além disso, você especifica que o formato de cobertura é JaCoCo e fornece o diretório de classes da seguinte forma:

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

Arquivo de configuração

Se você quiser usar um arquivo de configuração em vez de/em combinação com argumentos de linha de comando, você pode usar a flag --config <CONFIG_FILE>. Caso você use argumentos de linha de comando em combinação com um arquivo de configuração, os argumentos de linha de comando têm precedência.

O arquivo de configuração deve ser um arquivo yaml e conter uma linha para cada argumento de linha de comando que você deseja especificar, por exemplo:

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:

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

Esta linha combinaria os argumentos da linha de comando e do arquivo de configuração. Como a flag --timeout é especificada em ambos, o timeout especificado na linha de comando (10 segundos) terá precedência.

No diretório example_configs/ você encontrará dois arquivos de configuração de exemplo para usar na geração de relatórios de cobertura com JaCoCo para código Java e para geração de relatórios de cobertura com LCOV para código Python.

Relatórios

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

  1. cobertura de endpoints: isto pode sempre ser gerado, pois requer apenas a especificação OpenAPI.
  2. cobertura de código: atualmente suportado apenas para JaCoCo, mas pretendemos suportar mais. A parte complicada é que isto requer um mapeamento de cobertura para arquivos de código-fonte, e uma geração robusta de relatórios que use isso.

Além disso, um banco de dados é preenchido com todas as informações de requisições relacionadas à sua campanha de fuzzing. Este banco de dados pode ser visualizado e explorado através do dashboard Grafana.

Estrutura deste repositório

  • assets: logos, imagens, etc.
  • coverage_agents: código e instruções para rastreamento de cobertura a serem aplicados em vários alvos
  • example_configs: arquivos 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 fuzzear um alvo específico e como interpretar os resultados do fuzzing
  • dashboard: ferramentas para triagem dos resultados e desempenho do fuzzing

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

Build de desenvolvimento

Por padrão, o WuppieFuzz inclui 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, você pode desabilitar todas as dependências incluídas e linkar contra bibliotecas instaladas no sistema.

[!NOTE] O crate z3 requer Z3 4.15+, que é mais recente que a versão fornecida pela maioria dos gerenciadores de pacotes de distribuições Linux. Instale o Z3 via Homebrew (brew install z3) para obter uma versão compatível.

Dependências do sistema

Baixar ferramenta