0Pricing
Cyber Security Academy · Pelajaran

Injeksi SQL: Cara dan Alasan Kerjanya

Pahami SQLi klasik, buta, dan di luar jalur, serta alasan kueri berparameter dapat mencegahnya

Injeksi SQL: Cara dan Alasan Kerjanya adalah pelajaran Cyber Security Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cyber Security Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa Itu Injeksi SQL

Injeksi SQL (SQLi) terjadi ketika masukan dari pengguna dimasukkan ke dalam query SQL tanpa sanitasi yang tepat, sehingga penyerang dapat memanipulasi logika query. Ini merupakan salah satu kerentanan web tertua dan paling merusak.

Cara Kerja Injeksi SQL

Formulir masuk menjalankan query: SELECT * FROM users WHERE username='INPUT' AND password='INPUT'

Jika penyerang memasukkan ' OR 1=1-- sebagai nama pengguna, query menjadi: SELECT * FROM users WHERE username='' OR 1=1--' AND password='...' — yang mengembalikan semua pengguna.

Jenis-Jenis Injeksi SQL

Varian SQLi:

  • Dalam jalur: hasil dikembalikan langsung dalam respons (klasik, berbasis kesalahan)
  • Boolean Buta: tidak ada keluaran langsung; data disimpulkan dari respons benar/salah
  • Berbasis Waktu Buta: data disimpulkan dari jeda respons (SLEEP(5))
  • Di luar jalur: data dikeluarkan melalui permintaan DNS/HTTP

Injeksi Berbasis UNION

Serangan UNION menambahkan hasil dari query yang dikendalikan penyerang:

-- Discover number of columns:
id=1 ORDER BY 3--
-- Extract data:
id=1 UNION SELECT username,password,NULL FROM users--

Injeksi Berbasis Kesalahan

Pesan kesalahan mengungkap struktur basis data. Penyerang memasukkan data yang menyebabkan kesalahan sintaks, lalu pesan kesalahan yang dihasilkan membocorkan nama tabel, nama kolom, atau versi basis data. Nonaktifkan pesan kesalahan terperinci di lingkungan produksi.

Injeksi SQL Buta

Saat tidak ada keluaran yang terlihat, penyerang menggunakan kondisi boolean:

-- If admin exists, page loads normally:
id=1 AND (SELECT COUNT(*) FROM users WHERE username='admin')=1--
-- Time-based:
id=1; IF(1=1) WAITFOR DELAY '0:0:5'--

sqlmap: Injeksi SQL Otomatis

sqlmap mengotomatiskan pendeteksian dan eksploitasi injeksi SQL. Program ini dapat mengekspor isi basis data, membaca berkas, dan bahkan execute perintah OS jika pengguna basis data memiliki hak istimewa yang memadai.

sqlmap -u "http://target.com/page?id=1" --dbs
sqlmap -u "http://target.com/page?id=1" -D webapp -T users --dump

Mencegah Injeksi SQL: Query Berparameter

Pertahanan utama adalah query berparameter (pernyataan tersiapkan). Masukan pengguna diteruskan sebagai parameter, tidak pernah digabungkan ke dalam rangkaian query:

# Python (safe):
cursor.execute("SELECT * FROM users WHERE username = %s", (username,))
# Node.js (safe):
pool.query("SELECT * FROM users WHERE id = $1", [userId])

Perlindungan ORM

Penggunaan ORM (SQLAlchemy, Hibernate, Sequelize) biasanya mencegah injeksi SQL karena query dibuat menggunakan abstraksi yang aman. Namun, metode query mentah (execute(), query()) dengan interpolasi string melewati perlindungan ORM.

Validasi Masukan dan WAF

Pertahanan tambahan:

  • Validasi dan masukkan jenis masukan ke daftar izin (bilangan bulat, alamat surel)
  • Web Application Firewall (WAF) untuk mendeteksi pola injeksi
  • Akun basis data dengan hak minimum (tanpa DROP, tanpa UNION pada query hanya-baca)
  • Prosedur tersimpan (mengurangi paparan, tetapi bukan solusi lengkap)

Dampak Injeksi SQL

Injeksi SQL yang berhasil dapat mengakibatkan: ekspor seluruh basis data, pelewatan autentikasi, modifikasi atau penghapusan data, pembacaan berkas server (LOAD_FILE), penulisan shell web, dan eksekusi perintah OS melalui xp_cmdshell (MSSQL).

Pemeriksaan Singkat: Injeksi SQL

Apa pertahanan utama terhadap injeksi SQL?

Ringkasan Pelajaran

Injeksi SQL memanipulasi kueri basis data melalui masukan pengguna yang belum disanitasi. Jenis serangan mencakup serangan klasik, boolean buta, berbasis waktu, dan berbasis UNION. Pertahanan utama adalah kueri berparameter—jangan pernah menggabungkan masukan pengguna ke dalam SQL. Gunakan ORM dengan hati-hati, terapkan akun basis data dengan hak istimewa minimum, dan nonaktifkan pesan galat yang terlalu rinci.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Injeksi SQL: Cara dan Alasan Kerjanya” gratis?

Ya — teks lengkap “Injeksi SQL: Cara dan Alasan Kerjanya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cyber Security Academy, upgrade ke CoddyKit PRO. Kursus Cyber Security Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Injeksi SQL: Cara dan Alasan Kerjanya”?

Pahami SQLi klasik, buta, dan di luar jalur, serta alasan kueri berparameter dapat mencegahnya Kamu berlatih Cyber Security Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cyber Security Academy?

Tidak diperlukan pengalaman sebelumnya. Cyber Security Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Injeksi SQL: Cara dan Alasan Kerjanya” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cyber Security Academy ini?

Ya. Setiap pelajaran Cyber Security Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Injeksi SQL: Cara dan Alasan Kerjanya
  2. Cross-Site Scripting (XSS)
  3. Cross-Site Request Forgery (CSRF)
  4. Kesalahan Konfigurasi Keamanan dan Layanan yang Terbuka
← Kembali ke Cyber Security Academy