Web Fuzzing Menggunakan Ffuf
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/ffufAtau jika kalian menggunakan Kali Linux, ffuf sudah tersedia di repository. Kalian bisa menginstallnya menggunakan command
sudo apt update && sudo apt install ffufAtau, 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 seclistsSelain 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
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:
Di ffuf sendiri kalian bisa memfilter output berdasarkan regex, status code, mengatur timeout, dll. Untuk flag lain bisa kalian cek menggunakan command
Oke mungkin itu dulu tutorial singkat kali ini. Akan saya update lain waktu. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.
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: