Updated Jul 15, 2026

Fuzzing

Discover hidden directories with recursive HTTP fuzzing

Recursive HTTP directory and file fuzzer.

Agent

overview

What medusa does

Point -u at a live URL and -w at a directory wordlist. -r descends into discovered directories. -cP and -cN filter status codes; -e appends extensions.

Reach for it when a prober already confirmed the host and you need a deep content tree from one seed without re-running per level.

ffuf covers parameter and vhost modes with richer filtering. medusa stays recursion-first for directory trees. Not the older medusa login brute-forcer.

source github.com/riza/medusa

use cases

Where medusa fits

Discover hidden directories and files

Fuzz a live host with a content wordlist to surface admin panels, backups, and endpoints that are not linked from any page.

Map a deep directory tree in one run

Enable recursive fuzzing so medusa descends into each directory it finds and fuzzes inside it, building a full tree from a single seed URL.

Fuzz many hosts from a list

Feed a URL list so one wordlist runs against every target in the same job, then collect all discovered paths in one output.

Tune hits with status-code filters

Set positive or negative status codes to keep only the responses that matter, cutting redirect and not-found noise out of the results.

reference

medusa inputs and flags

13 inputs
NameTypeFlagDescription
urlSTRING-uSingle target URL to fuzz.
url-listFILE-uLFile of target URLs, one per line, to fuzz many hosts in one run.
wordlistFILE-wDirectory wordlist file, one entry per line.
recursiveBOOLEAN-rEnable recursive fuzzing into discovered directories.
extensionSTRING-eExtension appended to each wordlist entry.
positive-status-codesSTRING-cPStatus codes to keep as hits, separated by commas.
negative-status-codesSTRING-cNStatus codes to drop, separated by commas.
concurrentSTRING-concMaximum concurrent requests.

Showing key inputs. medusa exposes 13 inputs in total.

Full flag reference (13 inputs)
NameTypeFlagDescription
cpuSTRING-cpusNumber of CPU cores to use.
urlSTRING-uSingle target URL to fuzz.
schemaSTRING-sForce the scheme; defaults to http when the URL has none.
timeoutSTRING-tHTTP response timeout in seconds (default 10s).
url-listFILE-uLURL list file path, one target per line.
wordlistFILE-wDirectory wordlist file, one entry per line.
extensionSTRING-eExtension appended to each wordlist entry.
recursiveBOOLEAN-rEnable recursive fuzzing into discovered directories.
bypass-sslBOOLEAN-xBypass SSL certificate verification.
concurrentSTRING-concMaximum number of concurrent requests.
user-agentSTRING-uaUser-Agent header value to send.
negative-status-codesSTRING-cNNegative status codes to drop, separated by commas.
positive-status-codesSTRING-cPPositive status codes to keep as hits, separated by commas.

example

Run medusa

medusa · command
# recursive content discovery against a live hostmedusa -u https://example.com -w /wordlists/directory-list.txt -r -e php -cP 200,204,301,302,403
sample output
medusa v0.2.1 by rizasabuncu-----------------------------------------[*] URL/List: https://example.com[*] Recursive fuzz: true-----------------------------------------[200] https://example.com/admin - 4821[301] https://example.com/backup - 0[403] https://example.com/.git/ - 162[200] https://example.com/admin/config.php - 2044[+] Total time:	3.417s

guidance

Choosing medusa

Use medusa for recursive directory discovery on a host you already know is live. Recursion maps a deep tree from one seed. For a richer FUZZ engine with parameter and vhost modes, use ffuf; for a flexible payload framework, use wfuzz.

ffuf

General FUZZ engine with parameter and vhost modes plus response filtering. medusa is leaner and recursion-first.

wfuzz

Flexible fuzzing framework with many payload sources. medusa trades that breadth for recursive directory discovery.

crithit

Directory and file brute forcing built for extreme scale across many hosts at once.

faq

medusa questions

Enable -r and medusa descends into every directory it finds and fuzzes inside it, mapping a deep tree from a single seed URL in one run.

Run medusa yourself

A target URL and a directory wordlist feed medusa, which fuzzes the host recursively and writes the discovered paths as a queryable output.

Facts on this page come from the live Trickest tool library.