1) LFI nedir ?
2) LFI to RCE
3) Demo
1) LFI NEDIR ?
Local File Inclusion (LFI), bir çoğunuzun bildiği üzere web sitelerinde bulunan local dosyaları okuyabilmemize olanak sağlayan bir web güvenlik zafiyetidir.
include, require, include_once, require_once gibi PHP fonksiyonlarından kaynaklanır. Burada ki mantık sistemi kodlayan kişinin başka bir sayfayı siteye dahil etmek istemesidir. Saldırgan ise bunu manipüle ederek kendi çıkarına uygun dosyaları okuyarak siteyi ele geçirmeye çalışır.
Basit manada aşağıdaki gibi bir php betiğinden kaynalanır.
<?php include($_GET["page"]); ?>
Bu şekilde yazılmış bir scripti ;
vulnerable.php?page=sifreler.txt şeklinde manipüle ederek sifreler.txt dosyasını okuyabilmektedir.
LFI Nedir? sorusu üzerinde çok fazla durmayacağım, zira bir çoğunuz temel manada ne olduğuna hakimsiniz diye tahmin ediyorum.
2) LFI to RCE ?
LFI sadece dosya okumaktan ibaret bile olsa kritik bir açıkken birde bu açıktan yürüyerek RCE gibi daha kritik zafiyetler elde etmek mümkün. Bunun birbirinden farklı 8-10 tane yöntemi sayılabilir. Biz bunlardan bir tanesi olan “File Upload” ile ilgili kısmını anlatacağız.
Uygulanacak senaryo ;
1- LFI zafiyeti bulunan bir dosya
2- ".jpg" uzantısı hariç dosya kabul etmeyen bir upload mekanizması
Bu senaryo da yapılacak olan iş “.jpg” uzantılı resim dosyamız içerisine RCE elde etmemizi sağlayan PHP kodlarını yerleştirip sisteme yüklendikten sonra, LFI zafiyeti bulunan dosya üzerinden “.jpg” dosyamızı çağırım PHP kodlarımızın çalışmasını sağlamaktır.
".jpg" dosyası bir PHP fonksiyonu içerisinde çağırılacağı için PHP dosyası olarak yorumlanacak ve sonuç itibariyle jpg dosyamız içerisindeki PHP komutlarımız çalışmış olacaktır.
Aşağıdaki gibi JPG dosyasının en alt satırına PHP kodlarımızı ekliyoruz ;
Daha sonra dosyamızı yüklüyoruz.
ve LFI zafiyeti bulunan dosya üzerinden JPG dosyamızı çağırıp PHP kodlarımızı çalıştırıyoruz ve “id” komutunun çıktısını elde ediyoruz.
3) Demo
2) LFI to RCE
3) Demo
1) LFI NEDIR ?
Local File Inclusion (LFI), bir çoğunuzun bildiği üzere web sitelerinde bulunan local dosyaları okuyabilmemize olanak sağlayan bir web güvenlik zafiyetidir.
include, require, include_once, require_once gibi PHP fonksiyonlarından kaynaklanır. Burada ki mantık sistemi kodlayan kişinin başka bir sayfayı siteye dahil etmek istemesidir. Saldırgan ise bunu manipüle ederek kendi çıkarına uygun dosyaları okuyarak siteyi ele geçirmeye çalışır.
Basit manada aşağıdaki gibi bir php betiğinden kaynalanır.
<?php include($_GET["page"]); ?>
Bu şekilde yazılmış bir scripti ;
vulnerable.php?page=sifreler.txt şeklinde manipüle ederek sifreler.txt dosyasını okuyabilmektedir.
LFI Nedir? sorusu üzerinde çok fazla durmayacağım, zira bir çoğunuz temel manada ne olduğuna hakimsiniz diye tahmin ediyorum.
2) LFI to RCE ?
LFI sadece dosya okumaktan ibaret bile olsa kritik bir açıkken birde bu açıktan yürüyerek RCE gibi daha kritik zafiyetler elde etmek mümkün. Bunun birbirinden farklı 8-10 tane yöntemi sayılabilir. Biz bunlardan bir tanesi olan “File Upload” ile ilgili kısmını anlatacağız.
Uygulanacak senaryo ;
1- LFI zafiyeti bulunan bir dosya
2- ".jpg" uzantısı hariç dosya kabul etmeyen bir upload mekanizması
Bu senaryo da yapılacak olan iş “.jpg” uzantılı resim dosyamız içerisine RCE elde etmemizi sağlayan PHP kodlarını yerleştirip sisteme yüklendikten sonra, LFI zafiyeti bulunan dosya üzerinden “.jpg” dosyamızı çağırım PHP kodlarımızın çalışmasını sağlamaktır.
".jpg" dosyası bir PHP fonksiyonu içerisinde çağırılacağı için PHP dosyası olarak yorumlanacak ve sonuç itibariyle jpg dosyamız içerisindeki PHP komutlarımız çalışmış olacaktır.
Aşağıdaki gibi JPG dosyasının en alt satırına PHP kodlarımızı ekliyoruz ;
Daha sonra dosyamızı yüklüyoruz.
ve LFI zafiyeti bulunan dosya üzerinden JPG dosyamızı çağırıp PHP kodlarımızı çalıştırıyoruz ve “id” komutunun çıktısını elde ediyoruz.
3) Demo
Moderatör tarafında düzenlendi: