SQL Injection (SQLi)
Structured Query Language Injection (SQLi) mengacu pada serangan injeksi dimana penyerang dapat mengeksekusi pernyataan SQL berbahaya (juga biasa disebut muatan berbahaya) yang mengendalikan server database aplikasi web (juga sering disebut sebagai Relational Database Management System - RDBMS ). Karena kerentanan SQL Injection dapat mempengaruhi situs web atau aplikasi web yang menggunakan basis data berbasis SQL, kerentanannya adalah salah satu kerentanan aplikasi web tertua, paling umum dan paling berbahaya.
Dengan memanfaatkan kerentanan SQL Injection, mengingat keadaan yang benar, penyerang dapat menggunakannya untuk melewati mekanisme otentikasi dan otorisasi aplikasi web dan mengambil keseluruhan isi database. SQL Injection juga bisa digunakan untuk menambah, memodifikasi dan menghapus record dalam database, yang mempengaruhi integritas data.
Sejauh ini, SQL Injection dapat memberi penyerang akses tidak sah ke data sensitif termasuk, data pelanggan, informasi identitas pribadi (PII), rahasia dagang, kekayaan intelektual dan informasi sensitif lainnya.
Apa hal terburuk yang bisa dilakukan penyerang dengan SQL?
SQL adalah bahasa pemrograman yang dirancang untuk mengelola data yang tersimpan dalam RDBMS, oleh karena itu SQL dapat digunakan untuk mengakses, memodifikasi dan menghapus data. Selanjutnya, dalam kasus tertentu, RDBMS juga dapat menjalankan perintah pada sistem operasi dari sebuah pernyataan SQL.
Dengan mengingat hal di atas, ketika mempertimbangkan hal berikut, lebih mudah untuk memahami betapa menguntungkannya serangan SQL Injection yang berhasil bagi seorang penyerang.
Penyerang dapat menggunakan SQL Injection untuk melewati otentikasi atau bahkan meniru identitas pengguna tertentu.
Salah satu fungsi utama SQL adalah memilih data berdasarkan kueri dan menampilkan hasil kueri tersebut. Kerentanan SQL Injection dapat memungkinkan pengungkapan data secara lengkap berada pada server basis data.
Karena aplikasi web menggunakan SQL untuk mengubah data dalam database, penyerang bisa menggunakan SQL Injection untuk mengubah data yang tersimpan dalam database. Mengubah data mempengaruhi integritas data dan dapat menyebabkan masalah penolakan, misalnya, masalah seperti membatalkan transaksi, mengubah saldo dan catatan lainnya.
SQL digunakan untuk menghapus record dari database. Penyerang bisa menggunakan kerentanan SQL Injection untuk menghapus data dari database. Bahkan jika strategi cadangan yang sesuai digunakan, penghapusan data dapat mempengaruhi ketersediaan aplikasi sampai database dipulihkan.
Beberapa server database dikonfigurasi (disengaja atau sebaliknya) untuk memungkinkan eksekusi sistem perintah operasi yang sewenang-wenang pada server database. Dengan kondisi yang tepat, penyerang bisa menggunakan SQL Injection sebagai vektor awal dalam serangan jaringan internal yang berada di belakang firewall.
Baca Juga : Tutorial SQL Injection Mudah Menggunakan Havij
Baca Juga : Cara Melakukan SQL Injection secara manual