Daha önce Local File Inclusion Nedir başlıklı yazımda local file inclusion açıgının kısaca tanımını yapmıştım, şimdi ise bu konuya biraz daha geniş açıdan bakacagız. Günümüzde dahi bir çok hazır scriptlerde ve dünyaca ünlü, binlerce sitenin altyapısını kullandıgı wordpress, joomla gibi popüler içerik yönetim sistemlerinin modullerinde dahi bu zaafiyete rastgelmek mümkün.
Local file inclusion zaafiyetini oluşturan 4 önemli php fonksiyonu bulunmaktadır.
require();
require_once();
include_once();
include();
$_POST, $_REQUEST, $_GET gibi kullanıcıdan veri alıp, verileri degişkenin tanımlandıgı fonksiyonlar üzerinde direk çalıştırmak bu tür zaafiyetlerin oluşmasına sebeb olmaktadır.
Local file inclusion zaafiyetini örnekleyen bir takım kodlar.
Kullanımı : http://www.zaafiyeti-bunyesinde-barindiran-site.com/kodlarin-oldugu-dosya.php?parametre=../../../../../../../../../../etc/passwd
Örnek kullanımda "../" olarak kullandıgım kısım bir dizin altı anlamına gelmektedir onada örnek verecek olursam.
( Cpanel ) kontrol paneli kullanan sitelerin barındıgı sunucudaki script dosyalarının yüklü oldugu dizin /home/kullanici/public_html/ , Zaafiyeti bünyesinde barındıran sitede zaafiyetli dosyanın anadizinde yani public_html içinde oldugunu varsayarsak bizim alt dizinlere ulaşabilmemiz için 3 defa ../../../ yazdıktan sonra 3. ../ sonra sonunada okumak istedigimiz dosyayı yazmalıyız, Linux sunucularda /etc dizininde bulunan kullanıcı bilgilerinin içerisinde oldugu passwd dosyasını okumak için.
http://www.zaafiyeti-bunyesinde-barindiran-site.com/kodlarin-oldugu-dosya.php?parametre=../../../etc/passwd gibi bir yol izlemeliyiz.
İlerleyen günlerde bu yazımı güncelleyerek bu konuyu devam ettirecegim.
0 yorum :
Yorum Gönder