Pengujian Keamanan - Injeksi

Teknik injeksi terdiri dari memasukkan kueri SQL atau perintah menggunakan kolom input aplikasi.

Aplikasi Web - Injeksi

Injeksi SQL yang berhasil dapat membaca, mengubah data sensitif dari database, dan juga menghapus data dari database. Ini juga memungkinkan peretas untuk melakukan operasi administratif pada database seperti mematikan DBMS / menjatuhkan database.

Mari kita pahami Agen Ancaman, Vektor Penyerang, Kelemahan Keamanan, Dampak Teknis, dan Dampak Bisnis dari kelemahan ini dengan bantuan diagram sederhana.

Contoh

Aplikasi menggunakan data tidak tepercaya dalam pembuatan panggilan SQL rentan berikut -

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Tangan di atas

Step 1 - Arahkan ke area SQL Injection aplikasi seperti yang ditunjukkan di bawah ini.

Step 2- Seperti yang diberikan dalam latihan, kami menggunakan String SQL Injection untuk melewati otentikasi. Gunakan injeksi SQL untuk masuk sebagai bos ('Neville') tanpa menggunakan kata sandi yang benar. Pastikan bahwa profil Neville dapat dilihat dan semua fungsi tersedia (termasuk Cari, Buat, dan Hapus).

Step 3 - Kami akan menginjeksi SQL sehingga kami dapat melewati kata sandi dengan mengirimkan parameter sebagai 'a' = 'a' atau 1 = 1

Step 4 - Pasca Eksploitasi, kita bisa login sebagai Neville yang merupakan Admin seperti yang ditunjukkan di bawah ini.

Mencegah Injeksi SQL

Ada banyak cara untuk mencegah injeksi SQL. Ketika pengembang menulis kode, mereka harus memastikan bahwa mereka menangani karakter khusus yang sesuai. Ada lembar contekan / teknik pencegahan yang tersedia dari OWASP yang jelas merupakan panduan bagi pengembang.

  • Menggunakan Kueri Parameter
  • Keluar dari semua Input yang Disediakan Pengguna
  • Aktifkan Least Privilege untuk database bagi pengguna akhir