The Wordlists view manages payload lists used by FFuzzer, Param Discover, and the Discover content scanner. The view has three tabs: Browse, Editor, Merge.
🔗Built-in Wordlists
A set of bundled wordlists ship with the binary as compile-time constants (hugin-mcp/src/tools/wordlists.rs — pure Rust constants, zero dependencies):
dirs(DIRS_BUILTIN)extensions(EXTENSIONS_BUILTIN)backups(BACKUP_PATTERNS_BUILTIN)params(PARAMS_BUILTIN)header_params(HEADER_PARAMS_BUILTIN)
The FFuzzer, Discover, and Param-Discover MCP tools accept a wordlist_builtin parameter to pull from these directly.
🔗Sources for a Wordlist
When configuring a fuzz / discover run that needs a wordlist, the tools accept several source types:
- Built-in — reference a bundled list by name (
wordlist_builtin: "dirs") - Inline — pass the entries as an array (
wordlist: ["admin", "api", "v1"]) - File — point at a path (
wordlist_file: "/path/to/list.txt",.gzsupported) - Command — shell command whose stdout becomes the list (
wordlist_command: "seq 1 1000"— permission-gated)
These source types come from the WlSource enum used by the FFuzzer view (Builtin / File / Inline / Command).
🔗Browse / Editor / Merge
- Browse — list known wordlists with metadata (size, last used)
- Editor — inline edit a wordlist’s contents
- Merge — combine multiple wordlists; the view supports merge-source selection in a multi-row builder
🔗Transformations at Use Time
When a wordlist is fed into FFuzzer, additional transforms are available without modifying the underlying file:
wordlist_extensions— cross-product with extensionswordlist_prefix/wordlist_suffixwordlist_case— lower / upper / capitalizewordlist_filter— regex include/excludewordlist_min_length/wordlist_max_lengthwordlist_skip/wordlist_limit— for resume / pagination
🔗Storage
Wordlist files referenced by wordlist_file are loaded from disk at fuzz time. There is no centralised wordlist API; manage files in your filesystem (or via the Wordlists view’s editor) and reference them by path.
🔗Best Practices
- Curate aggressively — a focused 100-line list usually beats a 100k-line list
- Build from results — when something works in FFuzzer, append it to your “things-that-worked” list for future reuse
- Use built-ins as a baseline — the bundled lists are good first-pass coverage; add your own only when you have project-specific intelligence