THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

Dosya Enjektesi ve RFI

CmcEagle - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
06/2013
Nereden:
Spain
Yaş:
33
Mesajlar:
136
Konular:
111
Teşekkür (Etti):
1
Teşekkür (Aldı):
12
Ticaret:
(0) %
23-06-2013 17:47
#1
Dosya Enjektesi ve RFI



Bazı sınıflarınızı PHP nin include veya require methodlarıyla diğer dosyaların içinden çağırabilir ve kod karmaşasının önüne geçebilirsiniz. Bunun için kullanılınan include ve require methodları tahmin etmediğiniz açıklara sebep olabilir.

Alıntı:
if(isset($page))
{
include($page);
}
Burada $page değişkeniyle gelen değer varsa direk include ediyoruz. Mantıklı olan dosyayı direk değil kontrol ederek require_once metoduyla sayfaya dahil etmek.
Include , include_once ve require, require_once _once takısı alan metod daha önce o dosyanın dahil olup olmadığına bakar yani siz sayfanın belli yerlerinde tek bir kod çalıştırmak istiyorsunuz. Diyelim ki tarih.php sayfasında bir tarih-saat formatınız var ve onu sayfanın farklı yerlerinde ekrana basmak istiyorsunuz.

Alıntı:
include(‘tarih.php’); // tarihi bastı
include(‘tarih.php’); // yine tarihi bastı
Oysa
Kod:
include_once(‘tarih.php’); // tarih basıldı 
  include_once(‘tarih.php’); // daha önce bu include işlemi gerçekleştirildiği için tekrarlanmadı.


Yapılan testlerde require_once nin en hızlı yöntem olduğu gözlenmiştir.

Mesela sayfaların farklı alanlarını göstermek için şöyle bir kod kullanıyor olalım:
index.php?sayfa=iletisim.html

Kod:
<?php  
    $sayfa = $_GET[‘sayfa’];  
    include ‘$sayfa’;  
    // veya echo $sayfa; 
  ?>
Masumca iletişim sayfasını göstermesi gereken kodumuza bir de şimdi bakalım:

index.php?sayfa=../etc/passwd

Ekrana sunucunun root kullanıcı bilgileri geldi! Evet elimizle sunucuyu verdik. Sisteme tam yolu göstererek sayfaya dâhil etmek ve require_once metodunu kullanarak bu zafiyeti atlatabiliriz.

Kod:
$dir = ‘./inc/’; 
 
   require_once $dir . $sayfa ;  // sadece inc içindekileri require edebilir.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler