Skip to content

boofuzz

Network protocol fuzzing framework

PythonGitHub

Description

boofuzz is a fork of and the successor to the venerable Sulley fuzzing framework. It provides a framework for fuzzing network protocols, APIs, and file formats with mutation-based testing.

Installation

BASH
pip3 install boofuzz

Basic Usage

PYTHON
from boofuzz import *

session = Session(target=Target(connection=TCPSocketConnection("target.com", 80)))
s_initialize("HTTP-Request")
s_string("GET", fuzzable=False)
s_delim(" ", fuzzable=False)
s_string("/index.html")
s_delim(" ", fuzzable=False)
s_string("HTTP/1.1", fuzzable=False)
s_static("\r\n\r\n")
session.connect(s_get("HTTP-Request"))
session.fuzz()

Advanced Usage

PYTHON
# Fuzz FTP
session = Session(target=Target(connection=TCPSocketConnection("target.com", 21)))
s_initialize("FTP-USER")
s_string("USER", fuzzable=False)
s_delim(" ", fuzzable=False)
s_string("anonymous")
s_static("\r\n")
session.connect(s_get("FTP-USER"))
session.fuzz()

Common Workflows

BASH
# Run from CLI script
python3 fuzz_http.py

# Monitor with web UI
# boofuzz serves a web interface at http://localhost:26000 by default