Web Fuzzing Menggunakan Ffuf

Web Fuzzing menggunakan Ffuf. Kali ini saya akan sedikit membahas mengenai web fuzzing menggunakan ffuf. Fuzzing disini ditujukan untuk menemukan endpoint ataupun directory yang mungkin berisi informasi penting saat melakukan web assessment.

Nah, salahsatu tool web fuzzing terbaik saat ini adalah ffuf. Tool ini memiliki fitur yang lumayan lengkap, dan juga cepat karena ditulis menggunakan bahasa Go.

Instalasi
Untuk cara install ffuf sendiri cukup mudah. Kalian hanya perlu menginstall Go saja di sistem, lalu install ffuf dengan command
go get github.com/ffuf/ffuf
Atau jika kalian menggunakan Kali Linux, ffuf sudah tersedia di repository. Kalian bisa menginstallnya menggunakan command
sudo apt update && sudo apt install ffuf
Atau, kalian bisa langsung unduh file binary yang sudah dicompile melalui link berikut:
https://github.com/ffuf/ffuf/releases/latest

Wordlist
Untuk melakukan fuzzing, kalian memerlukan wordlist yang berisikan list nama direktori ataupun api endpoint. Nah, dari sekian banyak wordlist, yang menurut saya terbaik adalah SecLists. Di Kali Linux kalian bisa menginstall atau mengunduhnya menggunakan command
sudo apt install seclists
Selain itu, di Kali Linux kalian juga bisa menggunakan wordlist dari beberapa tool bawaan yang sudah disatukan di direktori /usr/share/wordlists.

Usage
berikut adalah beberapa contoh penggunakan ffuf untuk melakukan fuzzing. Yang perlu dicatat adalah saat melakukan fuzzing menggunakan ffuf, parameter yang ingin di fuzzing harus diubah menggunakan kata "FUZZ". Lihat contoh dibawah ini.

Berikut ini adalah contoh menggunakan ffuf untuk melakukan fuzzing untuk menemukan file maupun direktori dipadukan dengan wordlist dari SecLists.
ffuf -u https://ffuf.io.fi/FUZZ -w /usr/share/seclists/Discovery/Web-Content/big.txt

Atau kita bisa melakukan post data fuzzing menggunakan parameter seperti saat melakukan post data menggunakan curl.
ffuf -c -X POST -H "Content-Type: application/x-www-form-urlencoded" \
                                              -d "username=joohoi&password=FUZZ" -w /usr/share/seclists/Passwords/darkc0de.txt \
                                              -u "https://ffuf.io.fi/login.php" -fr "error"
Kita juga bisa mengubah paramater fuzzing di ffuf. Ini akan sangat berguna ketika kita melakukan fuzzing dua parameter sekaligus dengan menggunakan dua wordlist berbeda. Yang perlu kalian tambahkan adalah custom parameter tersebut di flag wordlist. Contoh
seq 1 10000 > numbers.txt && \
ffuf -c -w "numbers.txt:PARAM" -u "https://ffuf.io.fi/content.php?id=PARAM"

Cek status code menggunakan ffuf.
Beberapa waktu lalu saya pernah sharing bagaimana cara mengecek status code dari list domain menggunakan curl. Nah, kalian juga bisa melakukan hal yang sama menggunakan ffuf.
Contoh:
ffuf -u https://HOST -w domain.txt:HOST --mc all

Di ffuf sendiri kalian bisa memfilter output berdasarkan regex, status code, mengatur timeout, dll. Untuk flag lain bisa kalian cek menggunakan command
ffuf --help
Beberapa command yang sering saya gunakan. Ini saya taruh disini saja untuk catatan:
Directory bruteforce:
ffuf -e .php,.txt,.html -recursion-depth 3 --mc 200,403,500 -t 100 -w /usr/share/seclists/Discovery/Web-Content/big.txt -H "User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.7.9) Gecko/20050711 Firefox/1.0.5" -u https://domain.com/FUZZ
Wordlists
Untuk wordlists, saya menyarankan kalian untuk menggunakan SecLists. Bagi pengguna Kali Linux bisa langsung install menggunakan perintah:
sudo apt install seclists -y
Atau pengguna distro lain bisa langsung clone repository dari Github.
git clone https://github.com/danielmiessler/SecLists
Practice Ffuf
TryHackMe menyediakan room yang cukup menarik untuk melakukan praktik penggunaan FFuf. Kalian bisa cek melalui link berikut:


Oke mungkin itu dulu tutorial singkat kali ini. Akan saya update lain waktu. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.