Malatya DENEYAP

🔐 SQL Injection Laboratuvarı

Ortaokul Siber Güvenlik Dersi

Eğitmen: Hakan TOPTAŞ

💻 Modül 4: Veritabanı Yapısını Öğrenmek İçin SQL Komutları

Normal şartlarda bir geliştirici veya veritabanı yöneticisi bu komutları doğrudan MySQL konsolunda çalıştırır. Saldırgan ise SQL Injection ile aynı bilgilere dolaylı yoldan ulaşmaya çalışır.

← Veritabanı eğitimine dön

1. Aktif Veritabanını Göster

SELECT DATABASE();

Sonuç: sql_injection_lab

Injection karşılığı: UNION SELECT içinde database() kullan

2. Tüm Veritabanlarını Listele

SHOW DATABASES;

Sunucudaki tüm veritabanlarını gösterir (yetkiye bağlı).

3. Tabloları Listele

SHOW TABLES;

Seçili veritabanındaki tabloları listeler.

-- Alternatif (information_schema ile):
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'sql_injection_lab';

4. Tablo Yapısını Göster (DESCRIBE)

DESCRIBE kullanicilar;

Tablodaki tüm alanları, türlerini ve anahtar bilgisini gösterir.

FieldTypeNullKeyDefaultExtra
idintNOPRIauto_increment
kullanici_adivarchar(50)NO
sifrevarchar(100)NO
rolvarchar(20)NOogrenci
gizli_nottextYES

5. Belirli Sütunları Sorgula

SELECT kullanici_adi, rol FROM kullanicilar;

SELECT ad, fiyat FROM urunler WHERE kategori = 'Donanım';

Sadece ihtiyaç duyulan alanları seçmek güvenlik için de önemlidir.

6. information_schema — Meta Veritabanı

information_schema, MySQL'in kendi yapısını tuttuğu özel veritabanıdır. Tüm tablo ve sütun bilgileri burada saklanır — saldırganların favori hedefi!

-- Tüm sütunları listele:
SELECT table_name, column_name, data_type
FROM information_schema.columns
WHERE table_schema = 'sql_injection_lab';

🛡️ Savunma: Neden Tehlikeli?

Güvenli versiyonu incele →

✅ Modül Tamamlandı

Artık veritabanı yapısını hem normal SQL hem de injection ile keşfetmeyi biliyorsun!

Veritabanı eğitimine dön