Ders 10 - File Inclusion (High Level) | #Include <Karabük>
Bu yazıda güvenlik düzeyi High seviyesine yükseltilmiş DVWA'ya karşı LFI, RFI saldırılarına yapılabilecek güvenlik önlemleri incelenecektir.
LFI ve RFI saldırılarına karşı daha sağlam ne gibi bir önlem alınabileceğini keşfedin.
LFI ve RFI'ya Karşı Önlem
Geçen derste LFI ve RFI saldırılarına karşı bir güvenlik önleminden ve bu güvenlik önleminin nasıl aşılabileceğinden bahsetmiştik. Bu derste ise güvenliği bir tık daha yukarı çıkaracağız. Öncelikle Medium Level'da uygulanan güvenlik önlemine bir göz atalım:
// Include the specified page
Medium Level'in güvenliği 7. ve 8. satırdaki iki str_replace() fonksiyonu ile sağlanmaktaydı. Fakat geçen derste gösterilen teknikte olduğu gibi bu fonksiyonlar (önlemler) aşılabiliyordu. Şimdi High Level'da bu sorun nasıl giderilmiş bir bakalım:
Görüldüğü üzere File Inclusion'ın ilk dersinde bahsedilen page parametresinin alabileceği dosya adları beyaz liste diye tabir edebileceğimiz bir metotla kontrol altına alınmış. High level'ın 7. satırına göre page parametresi sadece include.php dosya adını alabilir ya da file ismiyle başlayan bir php dosyası alabilir. Bunların dışında bir dosya ismi alırsa bu durumda 7. satırdaki if koşulunun içerisinde girilir ve sayfa bulunamadı hatası döndürülür. Eğer if'in içine girilmezse, yani dosya ismi file ismiyle ile başlayan bir php dosyasıysa ya da include.php ise bu durumda o sayfa include() fonksiyonu ile mevcut sayfaya dahil edilir.
Görüldüğü üzere güvenlik çemberi sıkı bir şekilde daraltılmış. Yani kabul edilecek dosya isimleri için bir kural belirlenmiş. Bu güvenlik önlemi şu şartlarda aşılacak gibi görünmüyor. Fakat bu güvenlik önlemi şöyle bir açığa sahiptir: Eğer hedef web sitesinde file ile başlayan, fakat site ziyaretçisinin erişmesi istenilmeyen bir dosya varsa o dosyanın okunmasına High Level güvenlik önlemi engelleyemez. Çünkü tanımlanan şarta göre file ismiyle başlayan tüm php dosyaları okunabilirdir. Bu sıkıntıyı düzeltmenin yolu beyaz listeye hard code'lama ile kabul edilecek dosya isimlerini yazmaktır. Yani tek tek hangi dosyaları kabul edeceğimizi belirtmek belki en uğraştırıcı, fakat en sağlam güvenlik önlemidir. Aşağıda işte o sağlam güvenlik önleminin bir örneğini görmektesiniz:
Bu yazı 17.01.2016 tarihinde, saat 04:27:42'de yazılmıştır. 27.03.2016 tarihi ve 17:40:09 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK	 Görüntülenme Sayısı : 1936
* 27 + 7 = ?