Wednesday, January 7, 2009

SQL Injection

Kali ini kita akan membicarakan sedikit tentang SQL Injection, disini kita akan membahas tentang kemungkinan celah untuk melakukan penyerangan melalui SQL Injection. Berbeda dengan penyerangan XSS yang berdampak pada pengunjung sebuah situs, penyerangan SQL Injection langsung menyerang pada situs itu sendiri dan tentu saja yang menjadi sasaran adalah database nya.
Saya akan mengambil contoh situs BUMN yang cukup besar. Walaupn data yang kita peroleh dari contoh berikut bukan sesuatu yang teramat penting, tapi dari sini kita bisa melihat bahwa para administrator masih banyak yang lalai terhadap sisi keamanan dan kredibilitas baik admin ataupun perusahaan menjadi taruhannya.





















Pada form login kita masukkan ' or ' dan hal serupa kita masukkan pada field password






















hasilnya akan tampak seperti berikut






















atau kita ambil contoh kode lainnya

' or ' ='

mengapa bisa demikian?
Pada form login, pada umumnya statment nya sebagai berikut:

SELECT * FROM tabel WHERE field_username = input _username AND field_password = input_password

begitu kita mengekseskusi ' or ' =' maka perintahnya akan menjadi

SELECT * FROM tabel WHERE field_username "or"='' AND field_password = ''OR'' = ''

Logika OR menyebab kan perintah SQL selalu mengembalikan nilai true sehingga sistem akan mengizinkan anda masuk ke wilayah yang seharusnya dimasuki oleh member atau admin.

Untuk bahan percobaan, silahkan gunakan sebuah sistem yang memang dibuat dengan celah keamanan dari sisi SQL Injection sangat terbuka. Anda bisa sedot dari www.foundstone.com/us/resourse-free-tools.asp dengan nama file hacmebank atau hacmebank2_source.zip

Hal yang perlu anda persiapkan untuk menjalankan sistem tersebut adalah:
1. Microsoft.NET Framework v1.1
2. Microsoft IIS
3. MSDE 2000Release A

Sebenarnya, banyak hal yang bisa dilakukan untuk aksi penyerangan melalui SQL Injection, namun disini saya hanya ingin membahas tentang apa itu SQL Injection seperti apa alur logika nya dan cara yang saya gunakan di atas adalah cara yang biasa dilakukan untuk penetrasi awal. Jadi untuk hal-hal yang lebih lanjut anda bisa googling untuk mendapatkan cara ataupun cheat code nya.

Lantas apa yang bisa dilakukan untuk mencegah hal tersebut?
1. kesadaran individu terhadap keamanan akan sistem yang dikelolanya dalam hal ini sang admin. Umumnya username menggunakan id "admin", cobalah ganti dengan 4Dm1n atau sebagainya, hal ini dimaksudkan agar tidak mudah ditebak
2. lakukan penyaringan pada field, batasi jumlah karakter hanya pada a-z, A-Z, 1-0, ("_","@","." bila anda menggunakan id dengan email), tolak karakter khusus seperti *, &, ' dsb.
3. Anda bisa menggunakan tools dari pihak ketiga untuk menguji sistem yang anda buat.
4. perhatikan script dan syntax nya.
5. dll


0 comments:

 
:::POWER OF TECHNOLOGY::: | Template Ireng Manis © 2010 Free Template Ajah. Distribution by Dhe Template. Supported by Cash Money Today and Forex Broker Info Editing By: Diah Ika Puspa Sari