Updated Jul 14, 2026

Discovery

Brute-force hidden web paths on live hosts

Web path scanner.

Agent

overview

What dirsearch does

After httpx confirms a host is live, dirsearch takes --url and --wordlists and requests every path candidate. Hits become a path list for a crawler or scanner.

Operators reach for it when navigation and crawls miss admin panels, backups, .git, and config files. --extensions expands entries; --force-extensions appends to every word.

Soft-404 noise is the failure mode: keep codes with --include-status, drop with --exclude-status, or prune sizes via --exclude-sizes. --recursive walks directories it finds. Prefer ffuf for parameter or vhost FUZZ; prefer katana when you want crawl-found links, not guesses.

source github.com/maurosoria/dirsearch

use cases

Where dirsearch fits

Find hidden directories and files

Brute-force a live host with a content wordlist and extension list to surface admin panels, backups, and endpoints missing from the site's navigation.

Scope results with status and size filters

Include only interesting status codes and exclude noisy sizes or redirect targets so the output is real hits, not soft-404 padding.

Walk an application tree recursively

Enable recursive brute-forcing to descend into discovered directories and map deeper paths automatically.

Scan authenticated or proxied targets

Pass cookies, headers, or an auth credential and route through a proxy to discover content behind a login or through an intercepting tool.

reference

dirsearch inputs and flags

70 inputs
NameTypeFlagDescription
urlSTRING--urlTarget URL(s), can use multiple flags.
wordlistFILE--wordlistsWordlist file of paths to brute-force.
extensionsSTRING--extensionsExtension list separated by commas (e.g. php,asp).
recursiveBOOLEAN--recursiveBrute-force recursively into discovered directories.
include-statusSTRING--include-statusInclude status codes, supports ranges (e.g. 200,300-399).
exclude-statusSTRING--exclude-statusExclude status codes, supports ranges (e.g. 301,500-599).
formatSTRING--formatReport format (simple, plain, json, xml, md, csv, html, sqlite, and more).
threadsSTRING--threadsNumber of threads for concurrent requests.

Showing key inputs. dirsearch exposes 70 inputs in total.

Full flag reference (70 inputs)
NameTypeFlagDescription
ipSTRING--ipServer IP address
rawFILE--rawLoad raw HTTP request from file (use '--scheme' flag to set the scheme)
torBOOLEAN--torUse Tor network as proxy
urlSTRING--urlTarget URL(s), can use multiple flags
authSTRING--authAuthentication credential (e.g. user:password or bearer token)
cidrSTRING--cidrTarget CIDR
dataSTRING--dataHTTP request data
crawlBOOLEAN--crawlCrawl for new paths in responses
delaySTRING--delayDelay between requests
proxySTRING--proxyProxy URL (HTTP/SOCKS), can use multiple flags
configFILE--configPath to configuration file
cookieSTRING--cookieCookie
formatSTRING--formatReport format (Available: simple,plain,json,xml,md,csv,html,sqlite,mysql,postgresql)
headerSTRING--headerHTTP request header, can use multiple flags
schemeSTRING--schemeScheme for raw request or if there is no scheme in the URL (Default: auto-detect)
capitalBOOLEAN--capitalCapital wordlist
retriesSTRING--retriesNumber of retries for failed requests
sessionFILE--sessionSession file
subdirsSTRING--subdirsScan sub-directories of the given URL[s] (separated by commas)
threadsSTRING--threadsNumber of threads
timeoutSTRING--timeoutConnection timeout
full-urlBOOLEAN--full-urlFull URLs in the output (enabled automatically in quiet mode)
key-fileFILE--key-fileFile contains client-side certificate private key (unencrypted)
max-rateSTRING--max-rateMax requests per second
max-timeSTRING--max-timeMaximum runtime for the scan
no-colorBOOLEAN--no-colorNo colored output
prefixesSTRING--prefixesAdd custom prefixes to all wordlist entries (separated by commas)
suffixesSTRING--suffixesAdd custom suffixes to all wordlist entries, ignore directories (separated by commas)
wordlistFILE--wordlistsWordlist file
auth-typeSTRING--auth-typeAuthentication type (basic, digest, bearer, ntlm, jwt)
cert-fileFILE--cert-fileFile contains client-side certificate
data-fileFILE--data-fileFile contains HTTP request data
interfaceSTRING--interfaceNetwork interface to use
lowercaseBOOLEAN--lowercaseLowercase wordlist
recursiveBOOLEAN--recursiveBrute-force recursively
uppercaseBOOLEAN--uppercaseUppercase wordlist
urls-fileFILE--urls-fileURL list file
wordlistsFOLDER--wordlistsWordlists folder
extensionsSTRING--extensionsExtension list separated by commas (e.g. php,asp)
proxy-authSTRING--proxy-authProxy authentication credential
quiet-modeBOOLEAN--quiet-modeQuiet mode
user-agentSTRING--user-agentUser agent
http-methodSTRING--http-methodHTTP method (default: GET)
nmap-reportFILE--nmap-reportLoad targets from nmap report (Ensure the inclusion of the -sV flag during nmap scan for comprehensive results)
exclude-textSTRING--exclude-textExclude responses by text, can use multiple flags
headers-fileBOOLEAN--headers-fileFile contains HTTP request headers
proxies-fileFILE--proxies-fileFile contains proxy servers
random-agentBOOLEAN--random-agentChoose a random User-Agent for each request
replay-proxySTRING--replay-proxyProxy to replay with found paths
exclude-regexSTRING--exclude-regexExclude responses by regular expression
exclude-sizesSTRING--exclude-sizesExclude responses by sizes, separated by commas (e.g. 0B,4KB)
exit-on-errorBOOLEAN--exit-on-errorExit whenever an error occurs
deep-recursiveBOOLEAN--deep-recursivePerform recursive scan on every directory depth (e.g. api/users -> api/)
exclude-statusSTRING--exclude-statusExclude status codes, separated by commas, support ranges (e.g. 301,500-599)
include-statusSTRING--include-statusInclude status codes, separated by commas, support ranges (e.g. 200,300-399)
skip-on-statusSTRING--skip-on-statusSkip target whenever hit one of these status codes, separated by commas, support ranges
exclude-subdirsSTRING--exclude-subdirsExclude the following subdirectories during recursive scan (separated by commas)
force-recursiveBOOLEAN--force-recursiveDo recursive brute-force for every found path, not only directories
exclude-redirectSTRING--exclude-redirectExclude responses if this regex (or text) matches redirect URL (e.g. '/index.html')
exclude-responseSTRING--exclude-responseExclude responses similar to response of this page, path as input (e.g. 404.html)
follow-redirectsBOOLEAN--follow-redirectsFollow HTTP redirects
force-extensionsBOOLEAN--force-extensionsAdd extensions to the end of every wordlist entry. By default dirsearch only replaces the %EXT% keyword with extensions
recursion-statusSTRING--recursion-statusValid status codes to perform recursive scan, support ranges (separated by commas)
max-response-sizeSTRING--max-response-sizeMaximum response length
min-response-sizeSTRING--min-response-sizeMinimum response length
redirects-historyBOOLEAN--redirects-historyShow redirects history
remove-extensionsBOOLEAN--remove-extensionsRemove extensions in all paths (e.g. admin.php -> admin)
exclude-extensionsSTRING--exclude-extensionsExclude extension list separated by commas (e.g. asp,jsp)
max-recursion-depthSTRING--max-recursion-depthMaximum recursion depth
overwrite-extensionsBOOLEAN--overwrite-extensionsOverwrite other extensions in the wordlist with your extensions (selected via `-e`)

example

Run dirsearch

dirsearch · command
# brute-force a live host, recurse, filter noise, JSON reportdirsearch -u https://example.com -w /wordlists/content.txt -e php,asp,json -r -i 200,301,403 -x 404 --format json
sample output
Target: https://example.com/ [13:24:05] Starting: [13:24:11] 301 -   178B  - /admin  ->  https://example.com/admin/[13:24:13] 200 -     4KB  - /admin/login.php[13:24:19] 403 -   279B  - /.git/HEAD[13:24:26] 200 -    12KB  - /backup.zip[13:24:31] 200 -     1KB  - /config.php.bak[13:24:44] 301 -   178B  - /api  ->  https://example.com/api/[13:24:52] 200 -     2KB  - /robots.txt Task Completed

guidance

Choosing dirsearch

Use dirsearch on a host you already know is live when you need path brute-force with status and size filters. Reach for ffuf when you need a general FUZZ engine across parameters or vhosts. Use katana when discovery should follow links rather than guess them.

ffuf

General FUZZ engine for paths, parameters, and vhosts. dirsearch is purpose-built for path discovery with built-in report formats.

feroxbuster

Recursive content discovery with smart defaults. dirsearch offers richer include and exclude filtering.

gobuster

Fast, simple directory brute-forcing. dirsearch adds recursion control and more output formats.

faq

dirsearch questions

--extensions takes a comma-separated list such as php,asp,json and substitutes the %EXT% keyword in wordlist entries. Add --force-extensions to append them to every entry, or --overwrite-extensions to replace extensions already in the wordlist.

Run dirsearch yourself

A live URL and a wordlist feed dirsearch, which brute-forces paths and writes the discovered files and directories as a queryable output.

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