Teknik penyalahgunaan celah keamanan pada lapisan database sebuah aplikasi. Ancaman cybercrime ini bisa terjadi karena adanya input yang tidak di-filter dengan benar dalam pembuatannya, sehingga terciptalah celah yang bisa disalahgunakan.
Apa itu SQL Injection?
SQL Injection adalah serangan injeksi dimana penyerang dapat mengeksekusi pernyataan SQL berbahaya yang mengontrol server database aplikasi web. Karena kerentanan SQL Injection mungkin dapat mempengaruhi situs web atau aplikasi web apa pun yang menggunakan database berbasis SQL, kerentanan tersebut adalah salah satu kerentanan aplikasi web tertua, paling umum, dan paling berbahaya.
SQL Injection juga dapat digunakan untuk menambah, memodifikasi dan menghapus catatan dalam database, mempengaruhi integritas data. SQL Injection dapat menyediakan penyerang dengan akses tidak sah ke data sensitif termasuk, data pelanggan, informasi pribadi (PII), rahasia dagang, kekayaan intelektual dan informasi sensitif lainnya.
Jenis Serangan SQL Injection
Injeksi kode: – Menambahkan lebih banyak pernyataan SQL ke pernyataan SQL dalam upaya untuk mendapatkan hak akses atau beberapa informasi sensitif disebut sebagai injeksi kode. Ini adalah jenis serangan injeksi SQL memanfaatkan beberapa jenis bug yang muncul di sistem komputer karena pemrosesan data yang tidak valid.
Fungsi panggilan injeksi: - Dalam penyerang ini menyisipkan panggilan. Penyerang juga bisa mendapatkan izin untuk membuat panggilan sistem melalui injeksi panggilan fungsi.
Manipulasi SQL: - Jika aplikasi secara langsung melewati database kredensial login, yang rentan terhadap serangan injeksi SQL melalui manipulasi SQL misalnya Kita dapat mengambil penambahan kondisi tertentu ke WHERE CLAUSE dalam query SQL. Ini dapat melewati prosedur otentikasi, dan dengan demikian dapat memberikan akses ke semua aktivitas yang dapat dilakukan pengguna.
.SQL Implementasi Injeksi
Mari kita lihat bagaimana SQL Injection dilakukan dengan contoh
berikut Pertimbangkan Pernyataan SQL berikut
Dalam Pernyataan di atas, input pengguna tidak difilter untuk karakter escape dan langsung diteruskan ke pernyataan SQL. Pernyataan SQL ini menampilkan catatan nama pengguna tertentu dari tabel pengguna. Namun jika variabel usename dibuat dengan cara tertentu oleh penyerang, pernyataan SQL dapat melakukan lebih dari yang dimaksudkan oleh penulis kode.
Baca Juga : Ethical Hacking: Definisi, Aturan, Skill, dan Manfaatnya (odimera.com)
Sebagai contoh
: Jika usename ditetapkan sebagai $username=' OR '1'='1 t maka pernyataan SQL di atas menjadi
Jika pernyataan SQL ini digunakan dalam prosedur otentikasi maka itu akan mengembalikan data setiap pengguna daripada satu pengguna tertentu sebagai kode yang dimaksudkan karena '1' = '1' selalu benar.
$username=$_POST["username"];
statement = "SELECT * FROM users WHERE name = '" + $userName + "';"
SELECT * FROM users WHERE name = '' OR '1'='1';
Mencegah SQL Injection
Contoh di atas adalah karakter pelarian yang salah difilter serangan SQL Injection. Kita dapat menangani semua karakter pelarian dengan cerdas dalam bahasa scripting. MySQL menyediakan fungsi yang disebut mysql_real_escape_string() untuk menghindari karakter input yang khusus Kata Kunci
MySQL Ada fungsi lain untuk banyak jenis database di PHP seperti pg_escape_string () untuk PostgreSQL.
Fungsi addslashes (string $str) bekerja untuk melarikan diri karakter, dan digunakan terutama untuk query pada database yang tidak memiliki fungsi melarikan diri dalam PHP. Ini mengembalikan string dengan garis miring terbalik sebelum karakter yang perlu dikutip dalam kueri database, dll.
Baca Juga : Apa itu RCE, Remote Code Execution Vulnerability (odimera.com)
$username = mysql_real_escape_string($_POST['username']);
statement = "SELECT * FROM users WHERE name = '" + $userName + "';"
Risiko yang terkait dengan serangan injeksi SQL
Kinerja Eskalasi Hak Istimewa: - Orang jahat dapat mengambil keuntungan dari kekurangan pra
dikirim dalam database dengan meningkatkan tingkat akses individu yang tidak berwenang untuk peran tingkat yang lebih tinggi.
Eksekusi perintah jarak jauh: – Serangan injeksi SQL dapat digunakan untuk menjalankan perintah jarak jauh penyerang dapat mengeksekusi perintah sewenang-wenang pada database.
Otentikasi bypass: - manipulasi pernyataan SQL dapat mengakibatkan dengan melewati proses otentikasi sehingga memberikan penyerang dengan akses ke database.
Database Fingerprint: - Menentukan jenis database yang digunakan di backend dapat membantu penyerang dalam quenching serangan spesifik database melalui injeksi SQL, penyerang dapat menentukan database yang pengguna organisasi.
Penolakan layanan dalam serangan injeksi SQL, layanan database dapat dibanjiri dengan diminta oleh penyerang. Ada, itu akan menyatakan menolak permintaan pengguna segmen.
Demikian Pembahasan kali ini tentang "Pengertian SQL Injection" semoga bermafaat.
Baca Juga: SSRF Vulnerability - Pemalsuan permintaan sisi server (odimera.com)
#SQLInjection #Hacking #Programming #Insight #odimera