WFUZZ(1)

πŸ’… NAME πŸ’…

okay so wfuzz β€” it's a web application bruteforcer. that's the whole vibe. it goes brrr against web apps and finds the stuff nobody told you about. periodt. πŸ¦‹


✨ SYNOPSIS ✨

wfuzz [options] -z payload,params <url>

like literally that's it, bestie. options, a payload, and a url. the holy trinity πŸŽ€


🌸 OPTIONS 🌸

  • -h β€” prints info about all the available arguments. your little cheat sheet fr.
  • --help β€” the advanced help. big brain mode unlocked 🧠✨
  • --version β€” shows you the wfuzz version details. gotta know what you're working with.
  • -e <type> β€” lists all the available encoders / payloads / iterators / printers / scripts. it's giving menu of possibilities πŸ“
  • --recipe <filename> β€” reads options from a recipe file. yes, like a lil recipe. so cute.
  • --dump-recipe <filename> β€” prints your current options out as a recipe. save your setup, queen πŸ‘‘
  • --oF <filename> β€” saves fuzz results to a file. these can be consumed later using the wfuzz payload. leftovers that you actually reheat πŸ’œ
  • -c β€” output with colors. no cap, everything hits different in color 🌈
  • -v β€” verbose information. she's talkative and we love that.
  • -f filename,printer β€” store results in the output file using the specified printer (raw printer if omitted).
  • -o printer β€” format output using the specified printer. printer go brrr but make it aesthetic.
  • --interact β€” (beta) if selected, all key presses are captured. this allows you to interact with the program. it's giving hands-on πŸ™ˆ
  • --dry-run β€” prints the results of applying the requests without actually making any HTTP request. pretend mode, zero consequences ✨
  • --prev β€” prints the previous HTTP requests (only when using payloads generating fuzzresults).
  • -p addr β€” use a proxy in the format ip:port:type. repeat the option for using various proxies. where type could be SOCKS4, SOCKS5 or HTTP if omitted. glow-up your traffic, bestie πŸ•ΆοΈ
  • -t N β€” specify the number of concurrent connections (10 default). multitasking icon.
  • -s N β€” specify the time delay between requests (0 default). a lil pause, a lil self care πŸ§–
  • -R depth β€” recursive path discovery, where depth is the maximum recursion level. it's giving we must go deeper πŸ’€
  • -L, --follow β€” follow HTTP redirections. she follows the plot wherever it goes πŸŽ€
  • -Z β€” scan mode (connection errors will be ignored). she simply does not perceive the drama.
  • --req-delay N β€” sets the maximum time in seconds the request is allowed to take (CURLOPT_TIMEOUT). default 90.
  • --conn-delay N β€” sets the maximum time in seconds the connection phase to the server is allowed to take (CURLOPT_CONNECTTIMEOUT). default 90.
  • -A β€” alias for --script=default -v -c. the shortcut queen ✨
  • --script= β€” equivalent to --script=default.
  • --script=<plugins> β€” runs the script's scan. <plugins> is a comma separated list of plugin-files or plugin-categories.
  • --script-help=<plugins> β€” show help about scripts. always read the instructions bestie 😭
  • --script-args n1=v1,... β€” provide arguments to scripts. ie. --script-args grep.regex="<A href=\"(.*?)\">"
  • -u url β€” specify a URL for the request. the main character of the operation πŸ’…
  • -m iterator β€” specify an iterator for combining payloads (product by default).
  • -z payload β€” specify a payload for each FUZZ keyword, used in the form of type,parameters,encoder. a list of encoders can be used, ie. md5-sha1. encoders can be chained, ie. md5@sha1. an encoders category can be used, ie. url. use help as a payload to show payload plugin's details (you can filter using --slice).
  • --zP <params> β€” arguments for the specified payload (it must be preceded by -z or -w).
  • --slice <filter> β€” filter the payload's elements using the specified expression. it must be preceded by -z.
  • -w wordlist β€” specify a wordlist file (alias for -z file,wordlist).
  • -V alltype β€” all parameters bruteforcing (allvars and allpost). no need for the FUZZ keyword.
  • -X method β€” specify an HTTP method for the request, ie. HEAD or FUZZ.
  • -b cookie β€” specify a cookie for the requests. repeat the option for various cookies. πŸͺ (literally cookies, we love a theme)
  • -d postdata β€” use post data (ex: "id=FUZZ&catalogue=1").
  • -H headers β€” use headers (ex: "Host:www.mysite.com,Cookie:id=1312321&user=FUZZ"). repeat the option for various headers.
  • --basic/ntlm/digest auth β€” in format "user:pass" or "FUZZ:FUZZ" or "domain\FUZ2Z:FUZZ".
  • --hc/hl/hw/hh N[,N]+ β€” hide responses with the specified code/lines/words/chars (use BBB for taking values from baseline). not me ignoring what i don't wanna see πŸ™ˆ
  • --sc/sl/sw/sh N[,N]+ β€” show responses with the specified code/lines/words/chars (use BBB for taking values from baseline). the only content i consume πŸ‘‘
  • --ss/hs regex β€” show/hide responses with the specified regex within the content.
  • --filter <filter> β€” filter responses using the specified expression (use BBB for taking values from baseline). it should be composed of:

c,l,w,h / and,or / =,<,>,!=,<=,>=

Keyword: FUZZ, ..., FUZnZ β€” wherever you put these keywords wfuzz will replace them with the values of the specified payload.

Baseline: FUZZ{baseline_value} β€” FUZZ will be replaced by baseline_value. it will be the first request performed and could be used as a base for filtering.

bestie this one is a whole essay but every word of it matters, don't skip πŸ’€
  • --prefilter <filter> β€” filter items before fuzzing using the specified expression. pre-game filtering, we stan ✨

πŸ¦‹ EXAMPLES πŸ¦‹

here's the tea, actual copy-pasteable energy:

wfuzz -c -z file,users.txt -z file,pass.txt --sc 200 http://www.site.com/log.asp?user=FUZZ&pass=FUZ2Z
wfuzz -c -z range,1-10 --hc=BBB http://www.site.com/FUZZ{something not there}
wfuzz --script=robots -z list,robots.txt http://www.webscantest.com/FUZZ

more examples are available in the README. yes, the README. go read it, i'll wait 🫢


and that's the whole page, bestie πŸ’– this one's from wfuzz 2.2.11, dated June 2018 β€” old but iconic, the way that a 2018 bop still hits in the club. you're welcome, mwah πŸ’…βœ¨