Görev ve Zafiyet Senaryosu
Uygulama arka planda SELECT * FROM users WHERE username = '$user' AND password = '$pass' sorgusu çalıştırmaktadır. Kullanıcı adı kutusuna girilen tek tırnak sorgunun yapısını bozar, OR 1=1 ifadesi koşulu daima doğru yapar ve -- karakterleri parola kontrolünü SQL yorum satırına dönüştürür.
Hedef (Objective)
🎯 Görev: Giriş formundaki kullanıcı adı alanına SQL Auth Bypass yükü (admin' OR 1=1--) enjekte ederek parola doğrulamayı devre dışı bırakın ve yönetici olarak oturum açın.
Adım Adım Çözüm Metodolojisi
Giriş Formu & Sorgu Analizi
/login sayfasına giderek kullanıcı adı ve parola alanlarını inceleyin; tek tırnak girdiğinde arka planda nasıl bir SQL cümlesi oluştuğunu kavrayın.
Mantıksal OR Enjeksiyonu
Kullanıcı adı alanına admin' OR 1=1-- yazın ve parola alanını boş bırakın veya rastgele bir değer girin.
Yönetici Oturumu & Flag
Formu gönderdiğinizde veritabanı ilk satırdaki yönetici hesabını döndürür; sistem yönetici oturumu açarak bayrağı ekrana yansıtır.
Örnek Payload ve İstismar Kalıpları
admin' OR 1=1--' OR '1'='1admin'--' UNION SELECT 1, 'admin', 'hash'--
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Asla string birleştirme (concatenation) ile SQL sorgusu oluşturmayın; Parametreli Sorgular (Prepared Statements) kullanın.
- Veritabanı soyutlama katmanları (ORM / Prisma / TypeORM / SQLAlchemy) kullanarak sorgu ayrıştırmasını derleyiciye bırakın.
- Giriş formlarında kullanıcı girdilerini katı tip ve karakter denetiminden geçirin.
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 ⚡