Htb Skills Assessment - Web Fuzzing Now
Raw output is useless without intelligent filtering. Pay attention to:
Example filter: Ignore 404s and zero-length responses.
ffuf -u http://target.com/FUZZ -w wordlist.txt -fc 404 -fs 0
The difference between struggling for 6 hours and passing in 1 hour is filtering.
Before launching any fuzzer, reduce the search space by gathering intelligence:
Before typing ffuf or gobuster, you must understand why HTB places such heavy emphasis on fuzzing. htb skills assessment - web fuzzing
Web fuzzing is the art of automated brute-forcing. Instead of guessing passwords, you are guessing:
In the HTB ecosystem, the "Skills Assessment" is a purposefully vulnerable machine or web application. It combines multiple fuzzing techniques into a single narrative. You cannot pass it by running a single wordlist. You need a fuzzing workflow.
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt
If you find a page (e.g., admin.php) but it doesn't display anything immediately, it might be expecting input parameters.
While HTB wants you to understand manual commands, having a "Swiss Army Knife" script can help you manage the clock. Save this as fuzz_assessment.sh: Raw output is useless without intelligent filtering
#!/bin/bash
TARGET=$1
WORDLIST="/usr/share/seclists/Discovery/Web-Content/common.txt"
echo "[+] Fuzzing directories on $TARGET"
ffuf -u http://$TARGET/FUZZ -w $WORDLIST -c -t 50 -fc 404,403 -o dirs.json
echo "[+] Fuzzing extensions (php, bak, txt)"
ffuf -u http://$TARGET/indexFUZZ -w /usr/share/seclists/Discovery/Web-Content/web-extensions.txt -c
echo "[+] Fuzzing parameters on discovered PHP files"
Once you identify an interesting directory (let's assume /admin), you might find that accessing it directly yields a 403 Forbidden or simply a blank page. You need to find specific files inside that directory. Example filter: Ignore 404s and zero-length responses
Scenario: Determine what file extensions are served in the /admin directory.
Command:
We use two fuzzing positions here: the filename (FUZZ) and the extension (EXT).
ffuf -w /opt/useful/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://<TARGET_IP>/admin/FUZZ -e .php,.html,.txt,.bak
Alternatively, if you want to strictly fuzz the extension position:
ffuf -w /opt/useful/SecLists/Discovery/Web-Content/web-extensions.txt -u http://<TARGET_IP>/admin/indexFUZZ
Expected Outcome: You should find a valid file, such as admin.php, note.txt, or config.bak.