LAB 01 - WEB SECURITY

SQL Injection

Bu lab'de önce zafiyeti sömürecek, sonra güvenli kodla kapatacağız.

Beginner Burp Suite Secure Coding
Ana Sayfaya Dön

Lab Senaryosu

Aşağıdaki giriş alanına kullanıcı adı girerek arama yap. Sonraki adımda bu endpointi kasıtlı zafiyetli hale getirip `' OR 1=1 --` gibi payload'larla test edeceğiz.

Örnek Test Payloadları alice, ' OR 1=1 --, ' UNION SELECT 1,2,3 --

Öğrenme Hedefleri

  • String birleştirmenin riskini görmek
  • Burp Repeater ile isteği manipüle etmek
  • Parametreli sorguya geçiş yapmak
  • Fix sonrası retest ile doğrulamak

Guvenli Modda Ne Yaptik?

Sorunu string birlestirme ile query yazmak yerine parametreli sorgu kullanarak cozdik.

  1. Dinamik SQL birlestirmesini kaldirdik.
  2. WHERE Username = $username seklinde sabit query kullandik.
  3. AddWithValue("$username", username) ile inputu parametre olarak bagladik.
  4. Payload retestinde sonuc donmemesini fix kaniti olarak dogruladik.

Bu Hatayi Gercekte Nasil Cozmeliyiz?

  • Tum DB sorgularinda parametreli query veya ORM kullan.
  • Kullanici girdisini dogrula (uzunluk, karakter seti, format).
  • DB kullanicisini en dusuk yetkiyle calistir (least privilege).
  • Hata mesajlarinda SQL detaylarini son kullaniciya gostermeme.
  • Burp + otomasyon testleriyle regressions kontrolleri yap.

Adım Adım Yol Haritası

01 Vulnerable endpoint yaz
02 Payload ile açığı doğrula
03 Kök nedeni açıkla
04 Parametreli sorgu ile düzelt
05 Burp ile tekrar test et
06 Notlarını lab raporuna yaz