

Out-of-Band SQL Injection Saldırısı Nedir ?

Out-of-Band (OoB) SQL Injection, kötü niyetli saldırganların, SQL enjeksiyon saldırıları sırasında normal HTTP trafiğinin dışında farklı bir iletişim kanalını kullanarak veritabanına erişmeye veya bilgi çalmaya çalıştığı bir tür SQL enjeksiyon saldırısıdır. Bu tür saldırılar, geleneksel SQL enjeksiyon yöntemlerinden farklı olarak, verilerin gerçekleştiği ağ trafiği dışında bir iletişim kanalını kullanır.
OoB SQL Injection'ın temel amacı, güvenlik duvarları veya güvenlik önlemleri tarafından saptanması daha zor bir yol kullanarak veritabanına erişmektir. Genellikle, bu tür saldırılar aşağıdaki yöntemlerle gerçekleştirilir:
- DNS Tabanlı OoB SQL Injection: Saldırgan, DNS sorgularını manipüle ederek veritabanından bilgi çalmaya çalışır. Saldırganın kontrol ettiği bir DNS sunucusu kullanarak, istemci tarafından gönderilen verileri çalmak veya dışa aktarmak mümkün olabilir.
- HTTP Geri Çağırma (HTTP Callback) OoB SQL Injection: Saldırgan, veritabanından çalınan bilgileri dışarı aktarmak veya veritabanına ek veri eklemek için özel olarak hazırlanmış HTTP isteklerini kullanabilir.
- Diğer Ağ Protokolleri ile OoB SQL Injection: Saldırganlar, diğer ağ protokollerini (örneğin FTP) kullanarak veritabanıyla iletişim kurmayı deneyebilir.
Bu tür saldırılardan korunmak için aşağıdaki adımları alabilirsiniz:
- Geliştirme sırasında güvenlik en iyi uygulamalarına uyun.
- Kullanıcı girişlerini sorgulara yerleştirmeden önce doğrulama ve temizleme yapın.
- Parametreli sorguları kullanın.
- Güvenlik duvarları ve güvenlik tarama araçları kullanarak uygulamanızı düzenli olarak tarayın.
- Sistem ve uygulama güncellemelerini zamanında yaparak bilinen güvenlik açıklarını kapatın.
- Eğitimli bir güvenlik uzmanı tarafından sık sık denetlenen bir güvenlik politikası oluşturun.
Out-of-Band SQL Injection Örnek Saldırısı
Tabii, aşağıda bir örnek Out-of-Band (OoB) SQL Injection saldırısı senaryosunu bulabilirsiniz. Bu senaryo, bir web uygulamasının kullanıcı adı ve parola giriş alanlarıyla çalıştığını varsayalım:
- Hedef URL: Örnek uygulamamızın giriş sayfası:
- Kötü Niyetli Kullanıcı Girişi: Saldırgan, kullanıcı adı ve parola giriş alanlarına aşağıdaki girişi yapar:
- Kullanıcı Adı: admin' AND 1=2 UNION SELECT @@version,2--
- Parola: Herhangi bir parola girilebilir, bu aşamada önemli değil.
- Saldırı Açıklaması: Yukarıdaki girişlerde, kullanıcı adı alanına admin' AND 1=2 UNION SELECT @@version,2-- yazılmıştır. Bu giriş, SQL sorgusunu manipüle ederek UNION operatörünü kullanarak veritabanından veri almaya çalışır. @@version işlevi, veritabanı yönetim sisteminin sürümünü döndürür.
- Saldırının Sonucu: Eğer uygulama bu sorguyu çalıştırırsa, kullanıcı adı ve parola alanlarından gelen girişler veritabanında aşağıdaki sorguya dönüştürülecektir:
Kod:
SELECT * FROM users WHERE username = 'admin' AND 1=2 UNION SELECT @@version,2--' AND password = 'any_password'
5.Out-of-Band İletişim: Saldırgan, @@version sonucunu başka bir kanal üzerinden alabilir. Örneğin, HTTP geri çağırma veya DNS tabanlı iletişim kullanabilir.
Bu senaryo, bir Out-of-Band SQL Injection saldırısının basit bir örneğini göstermektedir. Saldırgan, veritabanı bilgilerine veya sistem sürümü gibi hassas bilgilere erişmek için bu tür saldırıları kullanabilir. Bu nedenle, web uygulamalarınızı güvenliği sağlamak için düzenli olarak güvenlik testleri ve sıkı kod incelemeleri ile denetlemelisiniz.
Konumu Okuduğunuz İçin Teşekkür Ederim
