Username enumeration via response timing
Link: https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-response-timing
Description:
This lab is vulnerable to username enumeration using its response times. To solve the lab, enumerate a valid username, brute-force this user's password, then access their account page.
Your credentials:
wiener:peter
Proof of concept:
Analisa web target
Lakukan brute force pada halaman login menggunakan payload credentials (username & password) yang telah disediakan. Brute force dilakukan dapat menggunakan burp suite intruder
Terlihat pada gambar diatas, ternyata terdapat blocking brute force pada form login web target dengan ditandai munculnya pesan
You have made too many incorrect login attempts. Please try again in 30 minute(s).
Dari response yang diberikan, artinya kita tidak dapat melakukan brute force dengan cara yang basic. Kita harus melakukan bypass rate limit yang diterapkan pada form login web target tersebut. Salah satu yang dapat dilakukan untuk melakukan pencegahan serangan brute force adalah dengan cara melakukan blocking terhadap alamat IP yang melakukan brute force atau request secara terus menerus diwaktu berdekatan. Jika teknik tersebut benar diterapkan pada form login target, untuk melakukan bypass teknik rate limiting tersebut salah satu caranya adalah dapat menambahkan header HTTP request
X-Forwarded-For
dan menginputkan nilai IP secara dinamis (berubah-ubah) agar sistem target membacanya, request yang dikirimkan berasal dari alamat IP-IP yang berbedaTerlihat pada gambar diatas, ketika mencoba login menggunakan akun testing walau kombinasi credentialsnya valid tetap saja request yang dikirimkan ditolak oleh sistem target
Maka coba untuk melakukan bypass dengan menambahkan
X-Forwarded-For
pada request Header HTTP seperti yang telah dijelaskan sebelumnyaTerlihat pada gambar diatas, berhasil login. Artinya dengan menambahkan
X-Forwarded-For
pada header request dapat melakukan bypass IP blocking yang diterapkan pada form login web target. Maka selanjutnya adalah melakukan pencarian username target dengan cara melakukan guessing menggunakan payload username yang telah disediakan. Pada saat melakukan brute force menggunakan burp suite intruder, pastikan attack type yang digunakan adalahPitchfork attack
dikarenakan akan menggunakan 2 payload. Payload yang pertama berisi payload numeric untuk mengubah nilai IP setiap requestnya pada headerX-Forwarded-For
dan untuk payload 2 berisi payload username. Juga, pastikan nilai pada parameter payload memiliki jumlah yang banyak agar perbedaan response time yang diberikan server dapat terlihatDari hasil brute force atau guessing username pada tahapan sebelumnya, didapati 2 username yang memiliki response recieved yang tinggi yaitu username
wiener
dan jugaas
. Namun karenawiener
merupakan username akun testing, maka username yang akan dieksploitasi adalah akun dengan usernameas
. Setelah ditemukan username yang valid adalahas
, selanjutnya adalah melakukan pencarian password yang valid untuk akun as dengan cara yang sama seperti pada saat melakukan brute force usernameDidapati password yang valid ditandai dengan dikembalikannnya kode HTTP
320
. Untuk dapat menyelesaikan tangtangan pada lab ini. Login menggunakan kombinasi credentials yang sebelumnya telah ditemukan dan akses halaman akun. Tidak lupa, karena masih dilakukan blocking pada IP asli, bypass blocking tersebut menggunakanX-Forwarded-For
kembali
Thanks, Stay Ethical & Happy Hacking! 🍻
Last updated