Local File Inclusion (LFI) Nedir?

E-posta Hosting Kampanya

Local File Inclusion sayfaya dahil edilen dosyaların kullanıcıdan alınması ya da bir yere data olarak yollanırken filtreleme işlemine tabii tutulmaması sonucunda kullanıcının yetkisi dışında dosyaları okuyabilmesine yol açan bir zafiyet türüdür.

Owasp listesinde de (https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion) yerini alan bu zafiyete karşı önlem alınmazsa kullanıcı config dosyasını okuyup mysql bağlanabilir , hatta çeşitli .log dosyaları üzerinden sisteme backdoor bile bırakabilir.

resim1 1 1024x480 - Local File Inclusion (LFI) Nedir?

Yukarıda gördüğünüz resimde yazılımcı arkaplanda bir parametreden aldığı veriye göre sayfaya dosyaları çağırmış ve include etmiş. Normal şartlarda dosyayı aldığı parametreyi çeşitli filtrelerden geçirdikten sonra sayfaya dahil etmesi gerekirken yazılımcı direk olarak parametreden gelen veriyi include fonksiyonunun içine koyduğu için basit bir payload ile “passwd” dosyasına erişim sağlayabil(ir)dik. Ama sağlayamadık. Neden? Çünkü ../ şeklinde encode etmeden bir payload gönderdiğimizde sistem bunu arkaplanda basitçe anlayıp 406 hata kodlu bir sayfa geri döndürdü.

Burada payloadımızı biraz daha şekillendirip URL Encode işlemine tabii tutuyoruz.

Normal payloadımız: ../../../../etc/passwd
Encode hali: ..%2F..%2F..%2F..%2Fetc%2Fpasswd

Sonuç:

resim2 1 1024x480 - Local File Inclusion (LFI) Nedir?

Gördüğünüz gibi filtreleme yapılmadığı için sunucu tarafında bir takım önlemler de alınsa çoğu zaman Local File Inclusion açığını önlemek için yeterli olmuyor. URL Encode bu zafiyetin istismarı için basit bir atlatma yöntemi buna benzer bir çok yöntemi kendinize bir lab ortamı kurup test edebilir , kendinize özgü payloadlar geliştirebilirsiniz.