Blind SQL injection with conditional responses
Link : https://portswigger.net/web-security/sql-injection/blind/lab-conditional-responses
Description:
This lab contains a blind SQL injection vulnerability. The application uses a tracking cookie for analytics, and performs a SQL query containing the value of the submitted cookie.
The results of the SQL query are not returned, and no error messages are displayed. But the application includes a Welcome back
message in the page if the query returns any rows.
The database contains a different table called users
, with columns called username
and password
. You need to exploit the blind SQL injection vulnerability to find out the password of the administrator
user.
To solve the lab, log in as the administrator
user.
Proof of concept:
Cek seluruh fitur pada aplikasi target
Pada target terdapat
cookie
dengan parameterTrackingId
Coba untuk menginputkan payload basic SQL injection seperti
single-quote (')
. Jika sudah, analisa response yang diberikan setelah diinputkan payload SQL Injection. Terlihat sebelum, dilakukan injeksi, response mengandung pesan "Welcome back!"
namun setelah dilakukan injeksi, string tersebut tidak terlihat pada response. Ini dapat dijadikan sebuah indikasi awal bahwacookie
tersebut rentan terhadap SQL injectionUntuk lebih memastikannya, coba untuk menginjeksikan kembali payload basic SQL injection yang lainnya. Sebagai contoh disini menggunakan payload
'AND '1'='1
yang artinya bernilaitrue
.Jadi, apabila payload tersebut diinjeksikan atau diinputkan atau disisipkan padacookie
parameterTrackingId
maka akan bernilaitrue (benar)
atau normal atau response yang diberikan oleh sistem akan mengembalikan response ketika kondisi cookie validDan benar saja seperti yang dapat dilihat pada gambar diatas, karena payload yang diinputkan bernilai
true
maka response kembali kesemula (normal) atau pesan“Welcome back!”
kembali tersedia. Untuk memastikan kembali, saya mencoba menginjeksikan kembali payload. Kali ini saya melakukan injeksi basic payload yang bernilaifalse
yaitu‘AND ‘1’=’2
Seperti yang dapat dilihat pada gambar diatas, ketika payload yang diinputkan bernilai
false
maka pesan“Welcome back!”
tidak muncul. Maka dapat disimpulkan cookie parameterTrackingId
rentan terhadap SQL InjectionSelanjutnya adalah melakukan eksploitation kerentanan SQL injection tersebut dengan menggunakan script python seperti gambar dibawah ini
Jika sudah, jalankan script python tersebut menggunakan perintah
python <<filename>>.py
Last updated