SQL Injection

Jumat, Desember 2nd, 2011

SQL injection adalah jenis aksi hacking pada keamanan komputer di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem. SQL injection yaitu serangan yang mirip dengan serangan XSS dalam bahwa penyerang memanfaatkan aplikasi vektor dan juga dengan Common dalam serangan XSS.

SQL injection exploits dan sejenisnya adalah hasil interfacing sebuah bahasa lewat informasi melalui bahasa lain . Dalam hal SQL injection, sebuah bahasa pemrograman seperti PHP atau Perl mengakses database melalui SQL query. Jika data yang diterima dari pengguna akhir yang dikirim langsung ke database dan tidak disaring dengan benar, maka yang penyerang dapat menyisipkan perintah SQL nya sebagai bagian dari input.

Setelah dijalankan pada database, perintah ini dapat mengubah, menghapus, atau membeberkan data sensitif.Lebih parah lagi jika sampai ke sistem eksekusi kode akses yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.

user yang akan masuk ke halaman halaman yang terproteksi harus memasukan username dan password mereka , daftar password dan user tersebut tersimpan dalam sql server dengan nama table admin dengan field field diantaranya username dan password. Statement sql bukanlah bahasa pemrograman seperti pascal,Delphi atau visual basic ,
statemen sql biasanya digunakan bersama sama dengan bahasa pemrograman lain pada saat mengakses database , pada ilustrasi diatas , untuk mencocokan user yang login , maka digunakan statemen sql yang kurang lebih sebagai berikut

Select * from admin where username = input_username
And password = input_password

Sebagai contoh apabila penulis sebagai administrator dengan username = administrator
dan password = admin bermaksud login maka sql statemennya sebagai berikut

Select * from admin where username = ‘administrator’ and
Password = ‘admin’

Dapat dipastikan bahwa apabila field username terdapat record administrator dengan filed
password terdapat admin penulis dapat melewati proteksi dan masuk kehalaman
berikutnya ,akan tetapi apabila sebaliknya ,maka akan keluar pesan kesalahan yang
kurang lebih isinya kita tidak bisa masuk ke halaman berikutnya , lalu bagaimana kalau
penulis memasukan input ‘ or ‘’=’ pada username dan password , perhatikan perubahan
statemen sql berikut ini

Select * from admin where username = ‘’ or ‘’ = ‘’ and
Password = ‘’ or ‘’=’’

Logika OR menyebabkan statement membalikan nilai false jadi true sehingga kita bisa masuk sebagai user yang terdapat pada record pertama dalam table admin ( record pertama biasanya administrator) , dan bagaimana kalo kita hanya mengetahui username saja tapi passwordnya tidak , misalkan username = administrator , caranya cukup sederhana , pada text box tempat menginput username isi dengan “administrator’—“ sedangkan pada textbox password boleh diisi sembarang misalkan ‘ or ‘’=’ maka statement sql akan berubah menjadi

Select * from admin where username = ‘ administrator ‘—“
And password = ‘’ or ‘’=’’

Tanda “—“ (dua tanda minus) di sql server berarti akhir dari statement sql sehingga perintah dibelakannya tidak dieksekusi lagi. Untuk web admin , bagaimana cara mencegahnya , jangan izinkan user menginput selain karakter a – z atau A – Z atau 0 – 9 , selain dari pada itu ditolak pada saat pengecekan. PENUTUP

Cara pencegahan SQL INJECTION

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

PENUTUP
Sebenarnya dari teknik dasar sql injection ini , pembaca bisa mengembangkan teknik ini sehingga ekses yang ditimbulkan akan lebih dasyat dari cumin sekedar bisa masuk sebagai web administrator. Penulis yakin bahwa sampai saat ini masih banyak situs situs yang bisa diekplor memakai teknik sql injection dikarenakan ketidak tahuan para adminnya , apabila para pembaca hendak mencobanya bisa mencari situs situs dengan menggunakan web searching misalkan yahoo atau google , masukan keynya login.asp/php atau admin.asp/php , tapi jangan merusaknya dan ingat aktifitas kita akan dicatat di log file yang akan mencatat IP kita dan aktifitas kita , penulis sarankan menggunakan anonymous proxy (akan dijelaskan pada artikel berikutnya).

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: