Local File Inclusion (LFI)
Dosya yolu parametresi yeterli kontrol edilmediğinde kullanıcı web kökü dışındaki sistem dosyalarını okuyabilir.
LFI Nedir?
Temel problem: Local File Inclusion, uygulamanın dosya dahil etme mantığını kullanıcıdan gelen parametreyle kontrol ettirmesidir.
- Riskli parametre: page, file, path gibi dosya adı alanları.
- Keşif payload'ı: ../ ifadesi bir üst dizine çıkmak (Directory Traversal) için kullanılır.
- Hedef dosya: /etc/passwd gibi sistem bilgisi içeren kritik dosyalar.
- Etki: Kullanıcı listesi, veritabanı konfigürasyonları veya kaynak kodu yetkisiz kişilerce okunabilir.
Kütüphanede sadece okuma salonuna erişim kartın varken, kapı kontrolü bozuk olduğu için yetkisiz arşiv odasına da girebilmek gibidir.
LFI Nasıl Tespit Edildi?
- DVWA File Inclusion sayfasındaki URL yapısında bulunan ?page= parametresi test edildi.
- Parametreye ../../../../../../etc/passwd directory traversal payload'ı eklendi.
- Manipüle edilmiş istek web tarayıcısı ve Linux terminalinde curl aracı ile hedefe gönderildi.
- Sistemin engelleme yapmadığı ve /etc/passwd içeriğinin HTML sayfasına yansıdığı görüldü.
LFI Kanıtları



LFI Çözüm
- Dosya adını doğrudan kullanıcıdan alma — Direct Object Reference kullanılmamalı.
- Dosya seçimlerini ID → allowlist dosya eşlemesiyle yap.
- Path normalization uygulandıktan sonra kök dizin dışına çıkışı kesinlikle engelle.
- Kritik konfigürasyon ve yedek (backup) dosyalarını web kökünde tutma.
- Uygulama hata mesajlarında tam dosya yolu (Full Path Disclosure) sızdırma.

















