1. IDOR (Insecure Direct Object Reference)
Türkçe Karşılığı: Güvensiz Doğrudan Nesne Referansı
Giriş & Çalışma Sebebi
Uygulama geliştiricileri, kullanıcıların kendi verilerine erişmesi için genellikle URL veya istek parametrelerinde benzersiz numaralar (ID) kullanırlar. Zafiyetin asıl sebebi, sunucunun gelen isteği işlerken “Bu ID’ye sahip veri var mı?” diye kontrol etmesi ama “Bu ID’ye erişmeye çalışan kullanıcı, gerçekten bu verinin sahibi mi?” kontrolünü (yetkilendirmeyi – authorization) unutmasıdır.
Payload & Mekanizma
Kullanıcı kendi profil faturasını görüntülerken URL şu şekildedir:
https://hedefsite.com/account/invoice?id=1005
Saldırgan parametreyi değiştirerek başka bir kullanıcının faturasına erişir:
https://hedefsite.com/account/invoice?id=1006
Çalışma Sebebi: Sunucu, veri tabanından
1006numaralı faturayı çekerken oturum açmış olan kullanıcının ID’si ile faturanın sahibinin ID’sini eşleştirmemiştir.
2. Command Injection
Türkçe Karşılığı: Komut Enjeksiyonu
Giriş & Çalışma Sebebi
Bazı web uygulamaları, arka planda sunucunun işletim sistemiyle konuşmak zorunda kalır (Örn: Bir IP adresine ping atmak, bir dosyayı sistem komutuyla boyutlandırmak). Zafiyetin asıl sebebi, kullanıcıdan alınan girdinin hiçbir filtreden geçirilmeden, doğrudan sunucunun komut satırına (system(), exec(), shell_exec() gibi fonksiyonlara) gönderilmesidir. Saldırgan girdi alanına bir işletim sistemi komutu iliştirdiğinde, sunucu bunu kendi komutu sanıp çalıştırır.
Payload & Mekanizma
Bir network test aracı sayfasına girilen normal IP girdisi: 8.8.8.8 (Arka planda çalışan kod: ping -c 4 8.8.8.8)
Saldırganın gönderdiği Payload:
8.8.8.8 ; cat /etc/passwd
Çalışma Sebebi: Arka plandaki Linux sunucusu
;(noktalı virgül) karakterini gördüğünde ilk komutun bittiğini, ikincisinin başladığını varsayar.pingişleminden hemen sonra sunucunun hassas kullanıcı listesini ekrana basar.
3. LFI (Local File Inclusion)
Türkçe Karşılığı: Yerel Dosya Dahil Etme
Giriş & Çalışma Sebebi
Geliştiriciler, web sitesinin farklı sayfalarını tek bir şablon üzerinden yüklemek için URL parametrelerini kullanabilirler (Örn: index.php?page=about.php). Zafiyetin asıl sebebi, sunucu tarafındaki kodun (genellikle PHP’deki include veya require fonksiyonları), parametre olarak gelen dosya yolunu doğrulamamasıdır. Saldırgan bu boşluktan yararlanarak sunucu üzerinde okuma yetkisi olan herhangi bir sistem dosyasını çağırabilir.
Payload & Mekanizma
Saldırganın URL üzerinden dizin atlayarak hassas dosyalara eriştiği Payload:
https://hedefsite.com/index.php?page=../../../../etc/passwd
Çalışma Sebebi: Sunucu, girdiyi temizlemediği için
../../(bir üst dizine çık) komutlarını harfiyen uygular. Web dizininin dışına çıkarak işletim sisteminin kök dizinine ulaşır ve hedef dosyayı uygulamanın içine dahil ederek ekranda gösterir.
4. SQL Injection (SQLi)
Seri No: #4 | Türkçe Karşılığı: SQL Kod Enjeksiyonu
Giriş & Çalışma Sebebi
SQLi, saldırganın web uygulaması üzerinden veri tabanına doğrudan kendi kötü amaçlı SQL komutlarını gönderebilmesidir. Zafiyetin asıl sebebi, kullanıcıdan alınan verinin (girdi) veri tabanı sorgusu oluşturulurken bir “metin” (string) olarak değil, sorgunun bir parçası (kod) olarak algılanmasıdır. Bu durum genellikle dinamik sorgu oluşturulurken (String Concatenation) yaşanır.
Zafiyetli Arka Plan Kodu (PHP)
Geliştiricinin WP-Admin’de veya özel bir scriptte yazdığı hatalı yapı:
$id = $_GET['id'];
// Girdi temizlenmeden doğrudan SQL sorgusuna ekleniyor
$query = "SELECT * FROM users WHERE id = " . $id;
$result = mysqli_query($conn, $query);
Payload & Mekanizma
Saldırganın URL üzerinden gönderdiği girdi: 1 OR 1=1 Oluşan Nihai Sorgu:
SELECT * FROM users WHERE id = 1 OR 1=1
Çalışma Sebebi:
1=1ifadesi her zaman doğru (TRUE) olduğu için, veri tabanıWHEREkoşulunu tamamen baypas eder ve tabloda ne kadar kullanıcı verisi varsa (şifre özetleri dahil) hepsini ekrana döker.
5. Cross-Site Scripting (XSS)
Seri No: #5 | Türkçe Karşılığı: Siteler Arası Betik Çalıştırma
Giriş & Çalışma Sebebi
XSS, saldırganın web uygulamasını kullanan diğer mağdur kullanıcıların tarayıcılarında zararlı JavaScript kodları çalıştırmasıdır. Zafiyetin asıl sebebi, web uygulamasının kullanıcıdan aldığı veriyi hiçbir filtrelemeden veya kodlamadan (Sanitization/Encoding) doğrudan HTML sayfasına gömmesidir. Tarayıcı (Chrome, Firefox vb.), sunucudan gelen HTML’i okurken bu zararlı kodu sitenin kendi orijinal koduymuş gibi algılar.
Zafiyetli Arka Plan Kodu (PHP)
Bir arama kutusuna yazılan kelimenin ekrana basıldığı hatalı yapı:
$search = $_GET['search'];
// Kullanıcı girdisi filtrelenmeden doğrudan HTML içine basılıyor
echo "<h3>Arama sonuçları: " . $search . "</h3>";
Payload & Mekanizma
Saldırganın arama kutusuna yazdığı Payload (Reflected XSS):
<script>alert(document.cookie)</script>
Oluşan Nihai HTML Çıktısı:
<h3>Arama sonuçları: <script>alert(document.cookie)</script></h3>
Çalışma Sebebi: Tarayıcı HTML sayfasını yukarıdan aşağıya doğru okurken
<script>etiketini görür görmez JavaScript motorunu çalıştırır. Saldırgan bu sayede kullanıcının oturum anahtarını (Cookie) çalabilir veya sayfayı tamamen manipüle edebilir.