Follow Instagram Kami [=>] www.instagram.com/rinaldi1001101 [=]

Selasa, 05 Agustus 2014

Mengenal SQL Injection

mengeksploitasi database pada suatu websites dengan memaksa keluarnya error page situs itu yang ada error pages itu terdapat info tentang struktur database website yang dieksploitasi. SQL sendiri merupakan bahasa pemrograman database yang sering dipakai para web developer maupun admin sebuah situs untuk menampung ataupun menaruh data-data baru dari suatu input yang masuk seperti input member login, search engine, dan lain sebagainya. 
Sebenarnya SQL injection sendiri bukanlah hal baru, dari dulu teknik ini sudah dikenal dalam dunia hacking sebagai salah satu teknik web hacking, namun baru muncul lagi sekarang karena sifatnya yang dapat merusak database dari suatu situs. Teknik yang digunakan dalam SQL Injection adalah dengan jalan menginput perintah- perintah standar dalam SQL (DDL, DML, DCL) seperti CREATE, INSERT, UPDATE, DROP, ALTER, UNION, SELECT dan perintah-perintah lainnya yang tak asing lagi bagi anda yang sudah mengenal SQL secara mendalam maupun yang baru saja belajar. Dari berbagai jenis SQL dari MySQL, PostgreSQL, Nuke SQL, dan MS-SQL, yang paling rentan terhadap SQL Injection adalah MS-SQL.
SQL Injection adalah suatu teknik injeksi kode yan
g mengeksploitasi kerentanan keamanan yang terjadi pada lapisan database. Kelemahan ini muncul ketika pengguna lolos menembus keamanan dari database tersebut. Contohnya, pembobolan lewat input box dan memasukkannya lewat alamat URL. Selain itu  Teknik hacking SQL injection mulai mencuat kepermukaan semenjak dijebolnya situs KPU pada pemilu 2009 putaran pertama kemarin oleh Dani Firmansyah atau Xnuxer , dengan teknik ini beliau dapat masuk sebagai web administrator tanpa susah payah scan portport yang terbuka , tanpa terdeteksi oleh firewall dan tanpa tools ke situs tersebut yang konon systemnya seharga 152 milyar itu dengan keamanannya yang berlapis lapis.
Pengertian SQL Injection
  1. SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
  2. SQL Injection 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.
Cara mengatasi/melindungi database dari SQL Injection


1. Lindungi Query SQL
Untuk melindungi query SQL, kita harus menerapkan tehnik sanitasi/mengosongkan seluruh input yang diterima dari request object ASP seperti: Request, Request.QueryString, Request.Form, Request.Cookies dan Request.ServerVariabbles. Teknik sanitasi ini sangat tergantung pada Relational Database Management System.  RDBMS merupakan sistem yang multiuser. Oleh karena itu, RDBMS menyertakan fitur sekuriti untuk mengontrol akses ke/dan penggunaan database. Tujuan arsitektur sekuriti RDBMS adalah untuk melindungi dan memverifikasi semua bagian informasi yang tersimpan dalam database. Informasi bisnis perlu diverifikasi untuk memastikan bahwa tidak ada data yang berubah.
Contoh penanganan MS SQL Server seperti dibawah ini.
Dalam sebuah halaman login, script semestinya terdiri dari dua variabel (txtUserName, txtPassword) dari jenis string yang dilewati. Saat sebuah tanda petik tunggal (‘) dimasukkan dalam sebuah parameter, hal ini mengijinkan user untuk memanipulasi perintah yang dieksekusi. Untuk menghadapi ancaman SQL Injection, hindari penggunaan tanda petik tunggal (‘) dengan menggunakan fungsi REPLACE, seperti dibawah ini:

p_strUsername = Replace(Request.Form(“txtUsername”), “‘”, “””)
p_strPassword = Replace(Request.Form(“txtPassword”), “‘”, “””)

Contoh yang kedua, script diharapkan adalah sebuah variabel (ID) jenis long integer. Perintah SQL yang tidak diotorisasi dapat mengeksekusi dengan menambahkan perintah SQL ke dalam parameter ID. Untuk mengatasi hal ini gunakan input untuk Long Integer dengan fungsi CLng sbb:

p_lngID = CLng(Request(“ID”))

Jika user mencoba melewati suatu string, fungsi CLng akan menampilkan pesan error.

Tidak ada komentar:

Posting Komentar