Neler yeni

RFI Nedir? Nasıl Kullanılır? (1 Viewer)

SpyWhite

kriptohaberleri.co
ez152
Mesajlar
887
Credits
3,281
x-Soldier
Mesaj tarihi: 21.09.2014 13:29:20

Remote File Inclusion Nedir Bu Remote File Inclusion ? RFI = Uzaktan Dosya Dahil Etmek Anla.mına Gelmektedir.
Webmaster’ların Kodlama Yaparken Bazı Variable(Değişken)’ları Dikkatsiz Olarak Scriptte Kullanması Sonucunda Attacker’ın O Scriptte İzinsiz Değişkenler Sayesinde Kendi Kodlarını Çalıştırması(Sayfaya Gömmesi)dır.
Ek Olarak Web Server’daki php.ini Dosyasında Bazı Ayarların Default (Yani Varsayılan) Olması ( register_globals & allow_url_fopen).
Bunlar Hakkında Geniş Bilgiyi Netten Bulabilirsiniz... RFI’den Kısaca Bahsettikten Sonra Gelelim Nasıl Bulunduğuna..

Scriptlerde RFI Ararken Genelde 3 Ana Komut Kullanılır. Bunlar ; - Include (Dahil Etmek) - Require > Include’a Benzer Fakat Farkları Vardır. - Define (Tanımlamak) Bu Ana Komutların Değişkenlerle Kullanılması ve Kullanılan Değişkenin Önceden Tanımlanmaması Sonucu RFI Açığı Oluşur. Şimdi Bunu Bir Örnekle Açıklayalım.. Sayfa.php Ornek kodumuz: <?php include($_GET['deger']); ?> *Burada gördüğünüz include kodu sayesinde GET methoduyla sayfaya veri include ediliyor. Bu sorgu sayesinde sayfadaki bu kodu manipule ederek kendi kodlarımızı çalıştırabiliriz.. Bunun için http://siteadi.com/sayfa.php?deger=shell.txt? Şimdi bu açığı fixleyelim: Bunu yapabilmek için birçok yöntem var fakat biz söyle bir yöntem izleyeceğiz: izin verilen dosyaları kendimiz onceden tanımlaya.rak kodumuzda herhangi bir açık bırakmayız.. <?php $izin = array('ayarlar.php','2.dosya.php','3.dosya.php'); if(in_array((string)$_GET['defer'],$izin);)){ include ($_GET['deger']); } else{ exit('izinsiz erisim'); } ?> Bu kodun açıklaması izin değişkenine izin vermek istediğimiz dosyaları tanıttık eğer sayfaya çağırılan dosyalar izin değişkeninde yoksa izinsiz erişim diye hata ver. Böylelikle RFI açığını kapattık. Farklı bir yontem: Eğer değişken $_GET gibi global değilse kendi değişkenimizi özel tanımlaya.rak rfi açığını kapatabiliriz.
 

Bu konuyu görüntüleyen kullanıcılar