Vulnerabilities

Apa Itu SQL Injection (SQLi)?

SQL Injection (SQLi) adalah jenis serangan di mana penyerang memasukkan pernyataan SQL berbahaya ke dalam bidang input untuk memanipulasi database.

Apa Itu SQL Injection (SQLi)?

SQL Injection (SQLi) adalah jenis serangan di mana penyerang memasukkan pernyataan SQL berbahaya ke dalam kolom input untuk memanipulasi basis data.

Serangan ini menargetkan aplikasi yang gagal menangani validasi dengan benar, input pengguna, memungkinkan akses tidak sah ke data sensitif seperti kata sandi atau detail kartu kredit, dll.

Bagaimana SQL Injection Bekerja

Ketika sebuah aplikasi langsung memasukkan input pengguna dalam kueri basis data tanpa validasi yang tepat, penyerang dapat memodifikasi perilaku kueri untuk memasukkan pernyataan SQL berbahaya.

Sebagai contoh:

SELECT * FROM users WHERE username = 'admin' AND password = '12345';

Seorang penyerang dapat memasukkan:

' OR '1'='1

Menghasilkan:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

Ini selalu mengembalikan true, memberikan akses tidak sah.

Mengapa SQL Injection Penting dalam Keamanan Siber

SQL Injection adalah teknik paling berbahaya dan tertua dalam keamanan siber. Jenis serangan ini secara konsisten tercantum dalam OWASP Top 10.

Bahkan kerentanan kecil memungkinkan penyerang untuk:

  • Akses, modifikasi, atau hapus data
  • Lewati otentikasi
  • Jalankan operasi administratif pada basis data.
  • Kompromi seluruh sistem.

Jenis Umum dari SQL Injection

  • Classic SQLi : Injeksi langsung melalui formulir web atau parameter URL.
  • Blind SQLi : Penyerang menyimpulkan informasi basis data secara tidak langsung (misalnya, melalui pesan kesalahan atau waktu respons).
  • Union-based SQLi : Menggunakan operator UNION untuk menggabungkan hasil dari beberapa kueri.
  • Error-based SQLi : Mengandalkan pesan kesalahan basis data untuk mengekstrak informasi.
  • Time-based Blind SQLi : Mengeksploitasi penundaan respons server untuk menebak hasil kueri.

Cara Mencegah SQL Injection

1. Gunakan Kueri Parameter (Prepared Statements)

Pastikan perintah SQL memperlakukan input pengguna sebagai data, bukan kode yang dapat dieksekusi.

cursor.execute("SELECT * FROM users WHERE username = ?", (username,))

2. Validasi dan Sanitasi Input

Validasi semua input dari pengguna, hanya mengizinkan karakter yang diharapkan.

3. Gunakan Kerangka Kerja ORM

Kerangka kerja seperti Prisma, Hibernate, dll, mengurangi penanganan SQL langsung.

4. Prinsip Hak Istimewa Terkecil

Batasi izin pengguna, hanya berikan izin yang diperlukan.

5. Pengujian Keamanan Secara Berkala

Gunakan alat pengujian keamanan aplikasi seperti SAST, DAST atau IAST untuk mendeteksi cacat injeksi sejak dini.

Contoh di Dunia Nyata

Sebuah situs web toko online mengalami pelanggaran di mana penyerang menggunakan injeksi SQL dalam formulir login untuk mengekstrak detail kartu kredit dari basis datanya.

Istilah Terkait

Ready to validate what matters?

Ready to validate what matters?

Plexicus is Proof-Driven AppSec: validated findings, contextual understanding, and reviewed remediation — anchored in evidence, scoped with you.

Qualification

Check whether AI Swarm Pentest fits your environment.

Share the minimum context. We will review the scope and tell you the next commercial step.

Before submitting — verify you fit

Teams with fewer than 50 developers: start a 14-day Trial instead of booking a demo. Start a 14-day Trial →

0 / 280

No commitment. If you don't fit, we'll tell you.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorised target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)