Rabu, 16 November 2016

SQL Injection

sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama EF Codd yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language). Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R. Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data. Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92. Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing. Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

Serangan SQL Injection
  • Identifying injectable parameters : Penyerang ingin menyelidiki Aplikasi Web untuk menemukan mana parameter dan bidang-input pengguna rentan terhadap SQLIA.
  • Performing database finger-printingPenyerang 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 databasespecific.
  • 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. Serangan dengan maksud ini diciptakan untuk mengumpulkan atau menyimpulkan informasi seperti ini.
  • 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.
  • Adding or modifying data : Tujuan dari serangan ini adalah untuk menambah atau mengubah informasi dalam database.
  • Performing denial of service: Serangan ini dilakukan untuk menutup database dari aplikasi Web, sehingga menyangkal layanan kepada pengguna lain. Serangan yang melibatkan mengunci atau menjatuhkan tabel database juga termasuk dalam kategori ini.
  • Evading detection: Kategori ini mengacu pada teknik serangan tertentu yang digunakan untuk menghindari audit dan deteksi oleh mekanisme perlindungan sistem.
  • Bypassing authentication:  Tujuan dari serangan jenis ini adalah untuk memungkinkan penyerang untuk memotong database dan mekanisme otentikasi aplikasi. Melewati mekanisme seperti itu bisa memungkinkan penyerang untuk menganggap hak dan hak istimewa terkait dengan pengguna aplikasi lain
  • 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....
  • 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.

Mita Anjani,13142023,IF7B1

Suryayusra,M.Kom.,CCNA

informatika,ilmu komputer , universitas Bina Darma

www.bina darma.ac.id