boofuzz

Automate protocol fuzzing with Boofuzz to detect security and robustness issues.

Updated Dec 22, 2025
One-click install
npx skills add https://github.com/lawless-m/Gwen --skill boofuzz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: boofuzz
Source: https://github.com/lawless-m/Gwen/tree/main/.claude/skills/Boofuzz-Fuzzer
Command: npx skills add https://github.com/lawless-m/Gwen --skill boofuzz

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you develop protocol fuzzers using the Boofuzz framework, enabling you to model protocol PDUs, sessions, and fault reporting, so you can quickly discover robustness issues in network protocols without manual trial-and-error.

Core Features & Use Cases

  • Protocol Fuzzer Development: Build mutation-based fuzzing scripts and reusable protocol components (Request, Block, Primitive) for deterministic testing.
  • Crash Detection & Reporting: Integrate crash detection and summarize findings for triage.
  • Real-World Use Case: Create a fuzzer for a custom binary protocol; define header blocks and payloads, then fuzz against a target to surface crashes or misbehaviors.

Quick Start

Start fuzzing a target with a Boofuzz script:

  • Define your protocol using Boofuzz primitives in a Python script
  • Run the script against the target host:port and observe fuzz outputs and crash reports

Frequently Asked Questions about boofuzz

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate protocol fuzzing to find security vulnerabilities?

Protocol fuzzing automates the discovery of security and robustness issues in network protocols by systematically mutating inputs and monitoring for crashes. Boofuzz provides a framework to define protocol structures using primitives like Request and Block, then automatically generates and sends malformed packets to detect failures without manual trial-and-error.

Can I use Boofuzz to fuzz custom binary protocols with headers and payloads?

Yes. Boofuzz supports defining custom binary protocols through its Request, Block, and Primitive components, allowing you to model headers, PDUs, and stateful sessions. You specify length and endianness constraints, then the framework generates mutation-based test cases tailored to your protocol structure.

How do I set up crash detection and reporting for my protocol fuzzer?

Boofuzz integrates crash detection by monitoring target responses during fuzzing runs. You configure callbacks to capture failures, then the framework summarizes findings and produces reproducible test cases and logs for triage, enabling you to quickly identify which inputs triggered issues.

What's the best way to test protocols like iSCSI and MQTT for robustness issues?

Mutation-based fuzzing with Boofuzz systematically tests protocol implementations by varying packet structures and observing target behavior. Define your protocol PDUs with correct and invalid variants, run the fuzzer against the target, and collect crash reports to expose implementation weaknesses in protocols like iSCSI and MQTT.

Do I need to write pre- and post-test callbacks for stateful protocol sessions?

Boofuzz supports optional pre- and post-test callbacks to manage session state and validate responses. While basic fuzzing works without them, callbacks let you maintain connection state, handle handshakes, and verify target behavior across stateful protocol exchanges for more comprehensive testing.

Can I reuse protocol definitions across multiple fuzzing campaigns?

Yes. Boofuzz's Request and Block primitives create reusable protocol components that you define once and apply across different fuzzing runs and targets. This modularity eliminates redundant protocol modeling and enables consistent, reproducible test cases for similar protocol variants.