Kamis, 20 Juli 2017

Apa Itu SQL Injection (SQLi)

Apa Itu SQL Injection (SQLi)

Kali ini saya akan membahas tentang apa itu teknik SQL Injection, bagaimana cara kerjanya dan bagaimana cara menggunakannya.
SQL Injection (SQLi) adalah sebuah kelemahan keamanan aplikasi yang memungkinkan penyerang untuk mengambil alih kendali database aplikasi, membiarkan mereka mengakses atau menghapus data, mengubah perilaku data-driven aplikasi, dan melakukan hal-hal lain yang tidak diinginkan. SQL Injection mengelabui aplikasi dalam mengirimkan perintah SQL yang tidak diharapkan.


Kelemahan SQL Injection terjadi ketika sebuah aplikasi menggunakan data yang tidak tepercaya, seperti data yang dimasukkan ke dalam kolom form web, sebagai bagian dari query database. Ketika sebuah aplikasi gagal untuk membersihkan data yang tidak tepercaya sebelum menambahkannya ke query SQL, penyerang dapat memasukkan perintah SQL mereka sendiri yang akan dijalankan oleh database. Kerentanan SQLi semacam itu mudah dicegah, namun SQLi tetap menjadi ancaman bagi pengguna aplikasi web, disamping itu juga banyak organisasi tetap rentan terhadap potensi kerusakan data yang diakibatkan oleh SQL Injection.

Bagaimana Penyerang melakukan SQL Injection (SQLi)

Penyerang atau attacker memberikan masukan yang dibuat khusus untuk mengelabui aplikasi agar memodifikasi query SQL sehingga aplikasi meminta database untuk dieksekusi. Hal ini memungkinkan penyerang untuk:
  • Mengontrol perilaku aplikasi berdasarkan data di database, misalnya dengan mengakali aplikasi agar bisa login tanpa password yang valid
  • Mengubah data di database tanpa otorisasi, misalnya dengan membuat catatan palsu, menambahkan user atau mengubah hak akses user ke tingkat akses yang lebih tinggi, atau menghapus data
  • Mengakses data tanpa otorisasi, misalnya dengan mengakali database agar menghasilkan banyak data dari sebuah query
Biasanya attacker menyerang melalui link URL yang mengandung nilai inputan seperti dibawah ini:

http://website.com/index.php?artikel_id=3

Selain cara diatas biasanya attacker juga menyerang melalui form seperti form login, form registrasi dan form lainnya. 

Anatomi Serangan SQL Injection

Seorang pengembang aplikasi web mendefinisikan query SQL untuk melakukan beberapa tindakan database yang diperlukan agar aplikasi mereka berfungsi. Query ini memiliki argumen sehingga hanya perintah yang diinginkan yang dikembalikan, dan nilai untuk argumen itu dapat diberikan oleh pengguna (misalnya, melalui kolom formulir, parameter URL, cookies web, dll.).

Serangan SQLi dijalankan dalam dua tahap:

  • Penelitian: Penyerang mencoba mengirimkan berbagai nilai tak terduga untuk argumen tersebut, mengamati bagaimana aplikasi merespon, dan menentukan serangan untuk dicoba.
  • Serangan: Attacker memberikan nilai input yang dibuat dengan hati-hati. Nilai input digunakan sebagai argumen pada query SQL dan akan ditafsirkan sebagai bagian dari perintah SQL dan bukan hanya data. Database kemudian mengeksekusi perintah SQL seperti yang dimodifikasi oleh penyerang.
Tahapan penelitian dan penyerangan dapat dengan mudah diotomatisasi dengan alat yang tersedia. Alat yang tersedia yang sering digunakan untuk melakukan serangan SQL Injection salah satunya adalah SQLMap. SQL Injection dengan SQLMap sebenarnya masih tergolong semi otomatis karena kita harus menentukan sendiri target URL yg akan kita serang. Biasanya penyerang akan mengkombinasikan tool SQLMap dengan tool yang lain seperti Accunetic, NetSparker dan tool vulnerable scaning lainnya.

Itulah tadi artikel pembuka untuk menambah wawasan tentang SQL Injection, semoga artikel ini sudah bisa menjawab tentang apa itu SQL Injection :)

This Is The Oldest Page


EmoticonEmoticon