About Wfuzz
Wfuzz is a powerful web application fuzzer that replaces any reference to the FUZZ keyword in URLs, headers, cookies, or other HTTP request elements with values from a specified payload. This makes it an essential tool for web application security assessments.
Commmon Snippets
wfuzz -c -w $wordlist -t $threads -v --hc 404 $host /FUZZ
wfuzz -c -w $wordlist -t $threads -v --hc 404 -H " Host: FUZZ. $host " $host
Table of Contents
Installation
# Pre-installed, but can be updated via apt
sudo apt update && sudo apt install wfuzz
git clone https://github.com/xmendez/wfuzz
Basic Concepts
The fundamental concept of Wfuzz is replacing the FUZZ keyword with payloads:
wfuzz -z payload,wordlist URL/FUZZ
wfuzz -z payload,list1 -z payload,list2 URL/FUZZ/FUZ2Z
Filtering Options
# Hide/Show by string or regex
--hs/ss " regex " # Hide/Show responses with match
--hc/sc CODE # Hide/Show by response code
--hl/sl NUM # Hide/Show by line count
--hw/sw NUM # Hide/Show by word count
--hh/sh NUM # Hide/Show by char count
--hs " Invalid username " # Hide responses containing text
--hs " Invalid * " # Hide responses matching regex
--hc 404,503 # Hide specific response codes
wfuzz -c -w wordlist.txt \
# Show only successful responses
wfuzz -c -w wordlist.txt \
Authentication Methods
wfuzz -c -w users.txt -w passes.txt \
wfuzz -c -w users.txt -w passes.txt \
--ntlm ' domain\FUZZ:FUZ2Z ' \
-H " Cookie: session=FUZZ " \
# Custom header authentication
-H " Authorization: Bearer FUZZ " \
Common Attack Scenarios
-d " name=FUZZ&password=FUZZ&autologin=1 " \
wfuzz -c -z file,users.txt -z file,passes.txt \
-d " name=FUZZ&password=FUZ2Z " \
wfuzz -c -w users.txt -w passes.txt \
-b " PHPSESSIONID=1234567890abcdef " \
" http://example.com/login?user=FUZZ&pass=FUZ2Z "
Directory and File Discovery
# Basic directory scanning
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
--sc 200,202,301,302,307,401 \
-z list,.php-.txt-.html \
http://example.com/FUZZ/FUZ2Z
Virtual Host Discovery
-w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt \
-H " Host: FUZZ.example.com " \
API Endpoint Fuzzing
-w /usr/share/wordlists/api_endpoints.txt \
https://api.example.com/FUZZ
' http://example.com/api/FUZZ=value '
Advanced Features
Encoders
# List available encoders
-z list,items-here,urlencode
Output Management
# List available output formats