SQL Injection
SQL Injection Nedir?
SQL Injection, bir web uygulamasının kullanıcı girdisini doğrudan SQL sorgularına dahil etmesi sonucu kötü niyetli kullanıcıların veritabanına izinsiz erişmesine yol açan bir güvenlik açığıdır.
Bu zafiyet, genellikle kullanıcıdan gelen verilerin doğrulanmadan veya filtrelenmeden SQL sorgusuna dahil edilmesiyle ortaya çıkar.
Saldırganlar, SQL Injection sayesinde veritabanındaki verileri okuyabilir, değiştirebilir, silebilir veya hassas bilgilere ulaşabilir.
Bazı durumlarda SQL Injection, işletim sistemi komutlarının çalıştırılmasına veya sunucuya kalıcı arka kapı (backdoor) yerleştirilmesine bile yol açabilir.
Zafiyetin en yaygın olduğu yerler; giriş formları, arama kutuları, URL parametreleri ve HTTP header’larıdır.
Uygulamada yetkilendirme kontrolleri iyi yapılmamışsa, saldırgan yönetici yetkileriyle işlem yapabilir.

Yöntemler
Kontrol
Authentication Bypass
Column Sayısını Bulma
DB Versiyon
Content Listing
String Concat
Visible Error Based SQLi
Blind SQLi Mantıksal Yanıtlar
Blind SQLi Mantıksal Hatalar
Blind Time Based SQLi
DNS Lookup
RCE
Eğer veritabanın diske yazma yetkisi varsa sunucuya bir shell dosyası atabiliriz.
Önlemler
Kullanıcıdan alınan tüm veriler, SQL sorgularında doğrudan kullanılmadan önce mutlaka doğrulanmalı ve temizlenmelidir (input validation & sanitization).
Parametrik (hazırlanmış/prepared) sorgular ve sorgu bağlamaları (bind variables) kullanılmalıdır.
ORM (Object-Relational Mapping) kütüphaneleri gibi SQL sorgularını otomatik yöneten araçlar tercih edilmelidir.
Veritabanı kullanıcısına minimum yetki verilmelidir; örneğin sadece okuma yapılacaksa yazma ve silme yetkileri verilmemelidir.
Hatalı girişlerde dönen hata mesajları detay içermemeli, saldırgana yol gösterici bilgi vermemelidir.
Web Application Firewall (WAF) gibi katmanlar kullanılarak şüpheli SQL ifadeleri engellenebilir.
SQL sorgularında whitelist (izin verilen girdiler listesi) yaklaşımı uygulanmalıdır.
Araçlar
SQLMap
OOB için Servisler
Pipedream: https://pipedream.com/
InteractSH: https://app.interactsh.com/
Burp Collaborator
Kaynaklar
Last updated