← Tüm Yazılar
SQL Injection,Web Güvenliği,İleri Seviye

SQL Injection Türleri: Error-Based, Union-Based, Blind ve Time-Based

2026-07-31 · REDCELL AR-GE

SQL Injection (SQLi), veritabanı sorgusuna kullanıcı girdisinin kontrolsüz karışması sonucu oluşur. Ama "SQLi" tek bir şey değil; saldırganın veriyi nasıl geri okuduğuna göre birkaç türe ayrılır. Bir güvenlik testinde doğru türü tanımak, hem tespiti hem raporlamayı belirler.

Tüm örnekler yalnızca sahibi olduğunuz veya yazılı yetki aldığınız sistemlerde denenmelidir. İzinsiz erişim Türkiye'de TCK 243-244 kapsamında suçtur.

1. Error-Based (Hata Tabanlı)

Uygulama, veritabanı hatasını ekrana bastığında saldırgan bu hatanın içine veri sızdırır. En hızlı türlerden biridir çünkü sonuç doğrudan hata mesajında görünür.

' AND extractvalue(1, concat(0x7e, (SELECT version()))) --

Çıktıda XPATH syntax error: '~5.7.38' gibi bir mesaj görürseniz, veritabanı sürümü hata üzerinden sızmış demektir.

İpucu: Uygulamalar hata mesajlarını kullanıcıya asla göstermemeli. Error-based SQLi'nin ilk savunması budur.

2. Union-Based (Birleştirme Tabanlı)

UNION SELECT ile saldırgan, kendi sorgusunun sonucunu uygulamanın normal çıktısına ekler. Önce sütun sayısı bulunur:

' ORDER BY 5 --      (hata verene kadar artırılır)
' UNION SELECT 1,2,3,4,5 --

Sonra görünen sütuna gerçek veri yerleştirilir:

' UNION SELECT 1, username, password, 4, 5 FROM users --

En "gürültülü" ama en çok veri çeken türdür.

3. Boolean-Based Blind (Kör — Mantıksal)

Uygulama veri veya hata göstermez; ama sayfa doğru/yanlış koşula göre farklı davranır (içerik değişir). Saldırgan evet/hayır soruları sorarak veriyi harf harf çıkarır:

' AND SUBSTRING((SELECT database()),1,1)='a' --

Sayfa "normal" dönerse ilk harf a'dır; değişirse değildir. Yavaştır ama otomatik araçlarla ölçeklenir.

4. Time-Based Blind (Kör — Zaman)

Sayfa hiç değişmiyorsa bile, saldırgan veritabanına "doğruysa bekle" dedirtir ve yanıt süresinden sonucu okur:

' AND IF(SUBSTRING((SELECT database()),1,1)='a', SLEEP(3), 0) --

Yanıt 3 saniye gecikiyorsa koşul doğrudur. En sinsi türdür; hiçbir görünür iz bırakmaz.

Tespiti Otomatikleştirmek

Bu türlerin hepsini elle denemek yerine, yetki dâhilinde sqlmap kullanılır — bir sonraki yazımızda sqlmap'in ileri seviye kullanımını ele alıyoruz.

Savunma: Hepsi İçin Tek Reçete

Türü ne olursa olsun panzehir aynıdır:

Sonuç

SQL Injection türlerini tanımak, bir açığın gerçek etkisini ölçmenin ilk adımıdır. Sisteminizde bir giriş formu, arama kutusu veya URL parametresi varsa, bugün test edilmelidir. REDCELL, yetkili kapsamda tam bir SQLi denetimi yapar — ücretsiz ön değerlendirme için yazın.

Sisteminizin güvenliğinden emin misiniz?

Ücretsiz Ön Değerlendirme →