Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

Bu laboratuvar, ürün kategori filtresinde bir SQL enjeksiyon açığı içermektedir. Kullanıcı bir kategori seçtiğinde, uygulama aşağıdaki gibi bir SQL sorgusu gerçekleştirir:
SELECT * FROM products WHERE category = 'Gifts' AND released = 1
Laboratuvarı çözmek için, uygulamanın bir veya daha fazla yayımlanmamış ürünü görüntülemesine neden olan bir SQL enjeksiyon saldırısı gerçekleştirin.
Sitede ürünleri kategoriye göre filtrelediğimde, backend tarafında şu SQL sorgusunun çalıştırıldığını öğrendim:
SELECT * FROM products WHERE category = ‘Gifts’ AND released = 1
Bu sorgu açıkça şunu söylüyor:
- category = 'Gifts' → Seçilen kategori
- released = 1 → Sadece yayında olan ürünler
Yani normal şartlarda gizli ürünlerin gelmemesi gerekiyor.
Burada kritik nokta şu:
category parametresi kullanıcıdan geliyor ve hiçbir filtreleme yapılmadan SQL sorgusuna ekleniyor.
Bu da demek oluyor ki: category alanını bozabilirsem, WHERE koşulunu tamamen kontrol edebilirim.
Burp Suite ile kategori filtresini gönderen isteği yakaladım ve category parametresini şu şekilde değiştirdim:
Gifts' OR 1=1--Bu input backend’de sorguyu şu hale getiriyor:

SELECT * FROM products
WHERE category = 'Gifts' OR 1=1--' AND released = 1Neden İşe Yarıyor?
Burada iki kritik SQL mantığı var:
OR 1=1
- 1=1 her zaman TRUE
- OR olduğu için, tüm WHERE koşulu TRUE oluyor
--
- SQL’de -- yorum satırı demek
- Ondan sonrası çalıştırılmıyor
Yani bu kısım tamamen devre dışı kalıyor:
AND released = 1Backend aslında şunu çalıştırmış oluyor:
SELECT * FROM products WHERE TRUE- Yayında olmayan ürünler
- Gizli ürünler
- Hepsi listeleniyor
Bu lab bana şunu net bir şekilde gösterdi:
- WHERE clause içinde yapılan SQL injection
- İş mantığını (business logic) tamamen bypass edebilir
- released = 1 gibi kontroller tek başına güvenlik değildir
- Kullanıcı girdisi filtrelenmiyorsa, tüm sistem çöker
Bu, SQL injection’ın en temel hali ama gerçek hayatta da çok sık görülen bir hata.
Bir sonraki labta görüşmek üzere 🌸







