Çerez Kullanımı

Bu web sitesi, deneyiminizi iyileştirmek ve site kullanımını analiz etmek için çerezler kullanmaktadır. Gizlilik Politikası sayfamızdan detaylı bilgi alabilirsiniz. Çerezleri kabul ederek, KVKK kapsamında verilerinizin işlenmesine onay vermiş olursunuz.

Samet Karabulut - Siber Güvenlik: SQL Injection Temel ve Gelişmiş Teknikler
#SIBERGüVENLIK #SQLINJECTION #UNION-BASEDSQLINJECTION #BOOLEAN-BASEDSQLINJECTION #TIME-BASEDBLINDSQLINJECTION #WEBUYGULAMAGüVENLIğI

Siber Güvenlik: SQL Injection Temel ve Gelişmiş Teknikler

Samet Karabulut

April 12, 2026

3 min read

Giriş

Benim deneyimime göre, SQL Injection (SQL Enjeksiyonu) en yaygın ve kritik web uygulaması açıklarından biridir. Siber güvenlik alanında sızma testleri gerçekleştirdiğim süreçte, birçok farklı türde SQL Injection'a rastladım. Bu yazıda, temel SQL Injection kavramından başlayarak, Union-Based, Boolean-Based ve Time-Based Blind SQL Injection tekniklerine kadar detaylı bir şekilde ele alacağım.

SQL Injection, saldırganların veritabanına yetkisiz erişim sağlamalarına veya veritabanında bulunan hassas verilere ulaşmalarına olanak tanıyan bir açıklıktır. Bu tür açıklar genellikle, kullanıcı girişinin yeterli düzeyde doğrulanmadığı veya filtrelenmediği durumlarda ortaya çıkar.

Temel SQL Injection

Temel SQL Injection, en basitdeki SQL Injection türüdür. Burada, saldırganlar kullanıcı girişini manipüle ederek, ek SQL komutları çalıştırabilirler. Örnek olarak, bir web uygulaması aşağıdaki gibi bir sorgu çalıştırıyor olsun:

SELECT * FROM kullanıcılar WHERE kullanıcı_adı = '$kullanıcı_adı' AND şifre = '$şifre'

Eğer kullanıcı adı ve şifre girişi için yeterli güvenlik önlemleri alınmamışsa, bir saldırgan aşağıdaki gibi bir girdi yapabilir:

kullanıcı_adı: ' OR 1=1 --
şifre: herhangi bir şey

Bu girdi, sorgunun her zaman doğru dönmesini sağlar ve saldırganın sisteme yetkisiz erişimine izin verir.

Union-Based SQL Injection

Union-Based SQL Injection, temel SQL Injection'ın bir adım ötesidir. Burada, saldırganlar UNION operatörünü kullanarak, farklı tablolardan veri çekebilirler. Örnek olarak:

SELECT * FROM kullanıcılar WHERE kullanıcı_adı = '$kullanıcı_adı' UNION SELECT * FROM başka_tablo

Saldırganlar, UNION operatörünü kullanarak, başka tablolardan veri çekebilir ve bu verilerle birlikte sistem hakkında daha fazla bilgi edinebilirler.

Boolean-Based SQL Injection

Boolean-Based SQL Injection, saldırganların boolean ifadeleri kullanarak, sistem hakkında bilgi edinmelerine olanak tanıyan bir tekniktir. Örnek olarak:

SELECT * FROM kullanıcılar WHERE kullanıcı_adı = '$kullanıcı_adı' AND şifre = '$şifre' AND 1=1

Saldırganlar, boolean ifadeleri kullanarak, sistem hakkında bilgi edinebilir ve bu bilgileri kullanarak, daha ileri düzeyde saldırılar gerçekleştirebilirler.

Time-Based Blind SQL Injection

Time-Based Blind SQL Injection, saldırganların sistem hakkında bilgi edinmelerine olanak tanıyan, zaman temelli bir tekniktir. Örnek olarak:

SELECT * FROM kullanıcılar WHERE kullanıcı_adı = '$kullanıcı_adı' AND şifre = '$şifre' AND SLEEP(5)

Saldırganlar, zaman temelli ifadeleri kullanarak, sistem hakkında bilgi edinebilir ve bu bilgileri kullanarak, daha ileri düzeyde saldırılar gerçekleştirebilirler.

Çözüm ve Önlem

SQL Injection açıklarını önlemek için, girdi doğrulaması ve filtreleme yapılması çok önemlidir. Ayrıca, parametreli sorguların kullanılması, SQL Injection saldırılarına karşı daha güvenli bir şekilde veri tabanına erişim sağlar.

Özetle, SQL Injection açıkları, web uygulamalarında sıkça karşılaşılan bir sorundur. Temel, Union-Based, Boolean-Based ve Time-Based Blind SQL Injection gibi farklı türlerde SQL Injection açıkları bulunmaktadır. Bu açıkları önlemek için, girdi doğrulaması, filtreleme ve parametreli sorguların kullanılması önemlidir.

Yorumlar

Henüz yorum yok. İlk yorumu sen yap.