Ana Sayfa / Laboratuvarlar / Hata Tabanlı SQL Injection (Error-Based CAST SQLi)
SQLi (SQL Injection) Orta Seviye (Practitioner) ⏱️ 15 Dakika 🛡️ OWASP Top 10 - A03: Injection

Hata Tabanlı SQL Injection (Error-Based CAST SQLi)

Sorgu çıktısı doğrudan ekrana basılmasa bile, veritabanının fırlattığı tür dönüşümü veya sözdizimi hatalarının içinde gizli verilerin kullanıcıya döndürülmesi zafiyetidir.

Laboratuvarı Tarayıcınızda Canlı Deneyin

Kurulumsuz, sanal hedef tarayıcı ve web terminali ile doğrudan zafiyeti istismar edin.

Laboratuvara Gir ⚡

Görev ve Zafiyet Senaryosu

Sistem kasası sorgusunda id parametresi doğrudan SQL ifadesine eklenmektedir. Hatalar try/catch ile gizlenmediği için CAST((SELECT secret FROM ...) AS INTEGER) hatası ekrana dönmektedir.

Hedef (Objective)

🎯 Görev: id parametresine tip uyuşmazlığı hatası üretecek bir SQL ifadesi ekleyerek kilitli sistem kasasındaki gizli bayrağı hata mesajı içinde okuyun.

Adım Adım Çözüm Metodolojisi

1

Ayrıntılı Hata Mesajlarını Tetikleme

id parametresine tek tırnak veya geçersiz ifade göndererek SQLite hata yanıtı alıp almadığınızı görün.

2

Hata Üreten Fonksiyon Enjeksiyonu

Metin veriyi sayıya çevirmeye zorlayan CAST() sorgusunu alt sorgu (subquery) ile birleştirin.

3

Veriyi Hata Mesajından Okuma

Veritabanı hatasında beliren secret_name veya flag bilgisini alarak görevi tamamlayın.

Örnek Payload ve İstismar Kalıpları

1 AND CAST((SELECT secret_name FROM system_secrets LIMIT 1) AS INT)
1' OR 1=CAST((SELECT sqlite_version()) AS INT)--
1 UNION SELECT 1, CAST(tbl_name AS INT) FROM sqlite_master--

Güvenli Kodlama ve Savunma Mekanizmaları

Zafiyet Nasıl Kapatılır?

  • Canlı (production) ortamlarda ayrıntılı veritabanı hata mesajlarının (verbose errors) kullanıcıya gösterilmesini engelleyin.
  • Tüm dinamik veritabanı sorgularında Parametreli Sorgular (Prepared Statements) kullanın.
  • Web uygulama güvenlik duvarı (WAF) kuralları ile veritabanı hata kalıplarını maskeleyin.

Uygulamaya Başlamaya Hazır mısınız?

SiberAdam interaktif arenasında hedef tarayıcı, DevTools ve CyberTerminal ile bayrağı hemen yakalayın.

Şimdi Çözmeye Başla ⚡