Username enumeration via response timing
Link: https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-response-timing
Last updated
Link: https://portswigger.net/web-security/authentication/password-based/lab-username-enumeration-via-response-timing
Last updated
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 berbeda
Terlihat 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 sebelumnya
Terlihat 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 adalah Pitchfork attack
dikarenakan akan menggunakan 2 payload. Payload yang pertama berisi payload numeric untuk mengubah nilai IP setiap requestnya pada header X-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 terlihat
Dari hasil brute force atau guessing username pada tahapan sebelumnya, didapati 2 username yang memiliki response recieved yang tinggi yaitu username wiener
dan juga as
. Namun karena wiener
merupakan username akun testing, maka username yang akan dieksploitasi adalah akun dengan username as
. Setelah ditemukan username yang valid adalah as
, selanjutnya adalah melakukan pencarian password yang valid untuk akun as dengan cara yang sama seperti pada saat melakukan brute force username
Didapati 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 menggunakan X-Forwarded-For
kembali
Thanks, Stay Ethical & Happy Hacking! 🍻