Pengertian SQL Injection

SQL Injection atau Injeksi SQL adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring dengan benar dari karakter-karakter pololos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.

 

Macam – Macam SQL Injection

  1. Identifying injectable parameters
    Dengan cara ini penyerang hanya ingin menyelidiki Aplikasi Web untuk menemukan dimana parameter dan bidang-input pengguna rentan terhadap SQLIA.
  2. Performing database finger-printing
    Penyerang ingin menemukan jenis dan versi database yang aplikasi Web menggunakan. Beberapa jenis database yang berbeda merespon secara berbeda terhadap query dan serangan, dan informasi ini dapat digunakan untuk “sidik jari” database. Mengetahui jenis dan versi database digunakan oleh aplikasi Web memungkinkan penyerang untuk kerajinan serangan database specific.
  3. Determining database schema
    Untuk benar mengekstrak data dari database, penyerang seringkali perlu mengetahui informasi skema database, seperti nama tabel, nama kolom, dan tipe data kolom.
  4. Extracting data
    Jenis-jenis serangan menggunakan teknik yang akan mengekstrak nilai data dari database. Tergantung pada jenis aplikasi Web, informasi ini bisa menjadi sensitif dan sangat diinginkan untuk penyerang. Serangan dengan maksud ini adalah Jenis yang paling umum dari SQLIA.
  5. Adding or modifying data
    Tujuan dari serangan ini adalah untuk menambah atau mengubah informasi dalam database.
  6. Performing denial of service
    Serangan ini dilakukan untuk menutup database dari aplikasi Web, sehingga menyangkal layanan kepada pengguna lain.
  7. Evading detection
    Kategori ini mengacu pada teknik serangan tertentu yang digunakan untuk menghindari audit dan deteksi oleh mekanisme perlindungan sistem.
  8. Bypassing authentication
    Tujuan dari serangan jenis ini adalah untuk memungkinkan penyerang untuk memotong database dan mekanisme otentikasi aplikasi.
  9. Executing remote commands
    Jenis-jenis serangan mencoba untuk menjalankan perintah sewenang-wenang pada database. Perintah ini Canbe disimpan prosedur atau fungsi yang tersedia bagi pengguna database.
  10. Performing privilege escalation
    Serangan ini memanfaatkan kesalahan implementasi atau kekurangan logis dalam database untuk meningkatkan hak-hak istimewa dari penyerang. Berbeda dengan melewati serangan otentikasi, serangan ini fokus pada pemanfaatan hak database pengguna.

 

 

Cara Pencegahan SQL Injection

  1. Validasi user input dengan melakukan filter input SQL comments dan spesial karakter (‘;:”)
  2. Membatasi panjang input box, dengan membatasi karakter pada input box, input box tidak dapat diinjeksi dengan perintah yang panjang.
  3. Membatasi akses database pada website. Sebaiknya SQL query tidak dapa diakses melalui website
  4. Menonaktifkan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures

 

Leave a Reply

Your email address will not be published. Required fields are marked *