Wordlists

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", .gz supported)
  • 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 extensions
  • wordlist_prefix / wordlist_suffix
  • wordlist_case — lower / upper / capitalize
  • wordlist_filter — regex include/exclude
  • wordlist_min_length / wordlist_max_length
  • wordlist_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