Vulnerabilities

SQL Enjeksiyonu (SQLi) Nedir?

SQL Enjeksiyonu (SQLi), saldırganların veritabanını manipüle etmek için giriş alanına kötü niyetli SQL ifadeleri girdiği bir saldırı türüdür.

SQL Enjeksiyonu (SQLi) Nedir?

SQL Enjeksiyonu (SQLi), saldırganların veritabanını manipüle etmek için giriş alanına kötü niyetli SQL ifadeleri girdiği bir saldırı türüdür.

Bu saldırı, doğrulama ve kullanıcı girişini düzgün bir şekilde ele alamayan ve şifre veya kredi kartı bilgileri gibi hassas verilere yetkisiz erişime izin veren uygulamaları hedef alır.

SQL Enjeksiyonu Nasıl Çalışır

Bir uygulama, kullanıcı girişini uygun doğrulama olmadan doğrudan bir veritabanı sorgusuna dahil ettiğinde, saldırganlar sorgunun davranışını değiştirerek kötü niyetli bir SQL ifadesi girebilir.

Örneğin:

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

Bir saldırgan şunu girebilir:

' OR '1'='1

Sonuç olarak:

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

Bu her zaman doğru döner ve yetkisiz erişim sağlar.

Siber Güvenlikte SQL Enjeksiyonunun Önemi

SQL Enjeksiyonu, siber güvenlikteki en tehlikeli ve en eski tekniktir. Bu tür saldırılar, sürekli olarak OWASP İlk 10 listesinde yer almaktadır.

Küçük güvenlik açıkları bile bir saldırgana şunları yapma imkanı tanır:

  • Verilere erişim, değiştirme veya silme
  • Kimlik doğrulamayı atlatma
  • Veritabanında yönetimsel işlemler yürütme.
  • Tüm sistemi tehlikeye atma.

Yaygın SQL Enjeksiyonu Türleri

  • Klasik SQLi : Web formları veya URL parametreleri aracılığıyla doğrudan enjeksiyon.
  • Kör SQLi : Saldırganlar veritabanı bilgilerini dolaylı olarak çıkarır (örneğin, hata mesajları veya yanıt süresi aracılığıyla).
  • Birleşim Tabanlı SQLi : Birden fazla sorgunun sonuçlarını birleştirmek için UNION operatörünü kullanır.
  • Hata Tabanlı SQLi : Bilgi çıkarmak için veritabanı hata mesajlarına dayanır.
  • Zaman Tabanlı Kör SQLi : Sorgu sonuçlarını tahmin etmek için sunucu yanıt gecikmelerini kullanır.

SQL Enjeksiyonunu Önleme Yöntemleri

1. Parametreli Sorgular (Hazırlanmış İfadeler) Kullanın

SQL komutlarının kullanıcı girdisini veri olarak, yürütülebilir kod olarak değil, ele almasını sağlayın.

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

2. Girdi Doğrulama ve Temizleme

Kullanıcılardan gelen tüm girdileri doğrulayın, yalnızca beklenen karakterlere izin verin.

3. ORM Çerçeveleri Kullanın

Prisma, Hibernate gibi çerçeveler doğrudan SQL işlemlerini azaltır.

4. En Az Ayrıcalık İlkesi

Kullanıcı izinlerini sınırlayın, yalnızca gerekli izinleri verin.

5. Düzenli Güvenlik Testleri

Uygulama güvenliği test araçları olarak SAST, DAST veya IAST kullanarak enjeksiyon açıklarını erken tespit edin.

Gerçek Dünyada Örnek

Bir çevrimiçi mağaza web sitesi, saldırganların bir giriş formunda SQL enjeksiyonu kullanarak veritabanından kredi kartı bilgilerini çıkardığı bir ihlal yaşadı.

İlgili Terimler

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)