SQL enjeksiyon (SQLi) saldırıları, bir uygulamanın veritabanı katmanındaki güvenlik açıklarını kullanarak zararlı SQL sorguları enjekte eder. Bu tür bir saldırı, saldırganların veritabanından veri görme, manipüle etme, ekleme ve silme yeteneği sağlar. İşte SQL enjeksiyonunun üç ana türü:
1. İn-band SQL Enjeksiyonu
Tanım: İn-band SQL enjeksiyonu, saldırganın aynı iletişim kanalını kullanarak hem saldırıyı gerçekleştirdiği hem de sonuçları aldığı bir saldırı türüdür.
Nasıl Çalışır: Saldırgan, veritabanına zararlı bir SQL sorgusu gönderir ve veritabanının yanıtı aynı kanal aracılığıyla geri döner, böylece saldırgan sonuçları doğrudan görebilir.
Türleri:
Hata Tabanlı SQL Enjeksiyonu: Veritabanı sunucusundan gelen hata mesajlarını kullanarak bilgi toplar.
Union Tabanlı SQL Enjeksiyonu: SQL UNION operatörünü kullanarak orijinal sorgunun sonuçları ile diğer sorgulardan elde edilen sonuçları birleştirir.
2. Kör/Çıkarımsal SQL Enjeksiyonu
Tanım: Kör veya çıkarımsal SQL enjeksiyonu, saldırganın veritabanından hata mesajları veya doğrudan geri bildirim almadığı bir saldırı türüdür. Bunun yerine, uygulamanın davranışı veya yanıtları üzerinden bilgi çıkarımı yapar.
Nasıl Çalışır: Saldırgan, uygulamanın davranışını veya sayfanın içeriğini değiştiren SQL sorguları gönderir ve yanıtları veya davranış değişikliklerini analiz ederek veritabanı hakkında bilgi çıkarır.
Türleri:
Boolean Tabanlı Kör SQL Enjeksiyonu: Saldırgan, sorgu koşulunun doğru veya yanlış olmasına bağlı olarak farklı sonuçlar döndüren sorgular gönderir.
Zaman Tabanlı Kör SQL Enjeksiyonu: Saldırgan, sorgu koşulunun sonucuna bağlı olarak gecikmeler getiren sorgular gönderir ve yanıt sürelerini ölçerek bilgi çıkarır.
3. Out-of-Band SQL Enjeksiyonu
Tanım: Out-of-band SQL enjeksiyonu, saldırganın farklı iletişim kanalları (örneğin, veritabanı e-posta işlevi veya dosya yazma ve yükleme işlevleri) kullanarak saldırıyı gerçekleştirdiği ve sonuçları elde ettiği bir türdür.
Nasıl Çalışır: Saldırgan, veritabanından bilgi almak için alternatif iletişim yöntemleri kullanır. Bu yöntemler, genellikle doğrudan yanıt alınamayan durumlarda kullanılır ve genellikle veritabanı yapılandırmaları veya uygulama özellikleri üzerinden bilgi sızdırmayı amaçlar.