Cyber Research Wiki

Wfuzz

Wfuzz is a Python-based web fuzzer that injects payloads into HTTP requests to discover endpoints, parameters, and behaviors, and to triage responses using flexible filters and output formats.

Overview

Wfuzz is a general-purpose web and API fuzzer that operates by substituting FUZZ tokens embedded in any portion of an HTTP request with values drawn from configurable payload generators. It is used in security assessments to enumerate endpoints and parameters and to examine application behavior under varying inputs. The tool provides a request generation and response triage framework rather than a full vulnerability scanner, relying on analyst-selected wordlists and filters to surface potentially interesting responses. The project has a long-running maintenance history with active releases on GitHub and documentation on Read the Docs.

What It Is

Wfuzz is a command-line and Python library tool for HTTP fuzzing based on a token-replacement model (FUZZ/FUZnZ). It supports injection across URL paths and queries, headers, cookies, bodies (including form and JSON content), and HTTP methods. A plugin system supplies payload generators, encoders/decoders, printers, and filters. Users can route traffic through proxies and use HTTP authentication. A filter language enables inclusion or exclusion of responses by status codes, size, words, lines, headers, and regular expressions. Results can be rendered via multiple output formats or consumed programmatically through the library API.

How It Works

Wfuzz iterates over payload values wherever FUZZ (or additional positional markers) appear in a request template, issuing corresponding HTTP requests. Multiple payload streams can be combined to fuzz several positions concurrently. Payload generators include wordlists, lists, and ranges; optional encoders and decoders (such as URL encoding, base64, or hashing) transform values prior to injection. Responses are triaged using a filter expression language that can act before or after execution to match on attributes like status code, response length, word and line counts, header presence, or regular expression matches. Execution controls cover concurrency and pacing, recursion for discovered paths, proxy chaining over HTTP or SOCKS, and Basic/Digest/NTLM authentication. The Python library mirrors the CLI concepts to enable integration into custom tooling and pipelines.

Core Concepts

Typical Workflow

Use Cases

Limitations

Related Tools

Evidence Gaps

Sources

Confidence

high