Remote File Inclusion (RFI), Türkçesiyle Uzaktan Dosya Dahil Etme, bir web uygulamasının dış kaynaklardan (genellikle saldırganın kontrol ettiği bir sunucudan) dosya çağırmasına veya yüklemesine olanak tanıyan bir güvenlik açığıdır. Bu tür açıklar, genellikle web uygulamalarının kullanıcı girdilerini yetersiz şekilde doğrulaması nedeniyle ortaya çıkar.
RFI genellikle PHP tabanlı web uygulamalarında, özellikle de include
, require
, include_once
ve require_once
gibi fonksiyonların kullanıldığı durumlarda görülür. Eğer bu fonksiyonlara dinamik olarak bir dosya yolu atanır ve bu girdi doğrulanmazsa, saldırganlar dış kaynaklardan kötü amaçlı dosyalar dahil edebilir.
RFI Saldırısının İşleyişi
Hedef Açığı Bulma: Saldırgan, dosya dahil etmek için kullanılan parametrelerin bulunduğu bir zayıf noktayı tespit eder. Örneğin:
Bu kod,
?page=
parametresi ile dinamik olarak bir dosya dahil etmektedir.Kötü Amaçlı URL Sağlama: Saldırgan, kötü amaçlı bir dosyanın bulunduğu URL'yi parametre olarak verir:
Kötü Amaçlı Kodun Çalıştırılması: Uygulama, saldırganın sunduğu uzaktaki dosyayı çağırır ve içeriğini çalıştırır. Bu dosya genellikle:
- Yetkisiz erişim sağlar,
- Veritabanı bilgilerini çalar,
- Sistem üzerinde zararlı komutlar çalıştırır,
- Sunucuya bir arka kapı (backdoor) bırakır.
RFI Saldırısının Tehlikeleri
- Yetkisiz Erişim: Saldırgan, sunucuda istediği dosyaları okuma ve yazma yetkisi kazanabilir.
- Sistem Ele Geçirme: Zararlı kodlar ile sunucu tamamen ele geçirilebilir.
- Veri Hırsızlığı: Kullanıcı verileri, veritabanı bilgileri gibi hassas bilgiler çalınabilir.
- DDoS ve Spam: Sunucu, saldırılar için bir botnet'e dönüştürülebilir.
Korunma Yöntemleri
Kullanıcı Girdisini Doğrulama:
- Dinamik dosya çağrısı gerekiyorsa, kullanıcı girdisi beyaz listeye göre doğrulanmalıdır.
- Mutlaka sabit bir yol ile sınırlı kalınmalı:
allow_url_include
Ayarını Kapatma:- PHP'deki
allow_url_include
veallow_url_fopen
direktifleri kapalı olmalıdır:
- PHP'deki
Dosya Dahil Etme Yolunu Sınırlama:
- Dinamik dosya çağrılarında dış kaynaklardan dosya çağrılmasına izin verilmemeli.
- Mutlaka yerel dosya yolları kullanılmalı.
Web Uygulama Güvenlik Duvarı (WAF):
- Güvenlik duvarları, RFI saldırılarını tespit edip engelleyebilir.
Kod Gözden Geçirme ve Güvenlik Testleri:
- Web uygulaması kodları düzenli olarak incelenmeli.
- Penetrasyon testleri ile açıklar tespit edilmelidir.
Lütfen yorum yaparken şunlara dikkat ediniz:
Küfürlü, siyasi veya huzur bozucu yorumlar yapmamaya,
Reklam, spam gibi yorumlar yapmamaya.