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.
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
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
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:
Post a Comment