Remote File Inclusion : Uzaktan dosya dahil etme anlamına gelmektedir.
RFI bug bulunurken bazı parametrelere dikkat edilir, bunlar :
INCLUDE
/ INCLUDE ONCE : Bu kod ile uzaktan dosya dahil edilir. Uzun satırlar
alan kodlar bu komutla başka sayfada kodlanmış olarak gösterilerek tek
satıa indirgenir.
REQUIRE / REQUIRE ONCE : Bu kodda Include
kodunun yaptığı işlevi gerçekleştirir. Fakat include ile kodlanmış bir
sayfada çağrılan (dahil edilen) dosya bulunamazsa PHP yorumlayıcımız bu
kodun olduğu satırı hata mesajı göndererek atlar ve sayfanın diğer
kalan kodlarını yorumlamaya devam eder fakat include komutundan sonra
require komutuda kullanılmışsa; çağrılan dosya bulunamadığı taktirde
bir hata verir ve yorumlamayı durdurur.
Require"in include"dan farkı budur.
Bu parametrelerin kullanımı sırasında " $ " işareti yardımıyla uzaktan kod çağrılabilir.
Örnek olarak aşağıdaki kodları inceleyelim :
include ("$Emre/admin/COLAK.php");
Burada " $ " işareti bulunan parametreyi ele alalım. Hatalı kodlamadan dolayı uzaktan dosya çağırmak mümkündür.
Bu dosyaları COLAK.php dosyasındaki kodlar olarak varsayalım.
İlk parametreyi kullanarak RFI oluşturulabilmektedir. ( Emre )
Bu kod ile örnek bir saldırı satırı oluşturalım.
http://www.site.com/patch/COLAK.php?Emre=Shell?
Varsayılan ayarlarda bir değişilik yapılmamış ise bunların çalışması beklenir.
Pekala şimdi açığı nasıl kapatabiliriz? Ona gelelim..
RFI Fix :
$Emre = "./";
include ("$Emre/admin/COLAK.php");
COLAK.php dosyamızın bu şekilde kodlandığını düşünürsek RFI açığının gerçekleştiremeyeceğimizi anlayabiliriz.
Emre ÇOLAK
Remote File Inclusion - Oluşumu ve Güvenliği
- velociraptor
- Yottabyte4
- Mesajlar: 46348
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 4331 kez
- Teşekkür edildi: 3748 kez