Pentest

[TR] LFI Zafiyetini RCE’ye Çevirme | Log Zehirleme

Reklam

LFI Zafiyetini RCE’ye Çevirme | Log Zehirleme

Selamlar herkese, bu konuda sizlere LFI yani local file inclusion zafiyetini remote code evaluation zafiyetine çevirmeyi anlatacağım. Aslında bu işlemi yapmanın birçok farklı yöntemi var ama ben size log zehirleme işlemini anlatacağım. Laboratuvar ortamı olarak TryHackMe‘de bulunan LFI Basics odasındaki 3. görevi baz alacağım. THM’de oda çözebilmek için ovpn konfigürasyonu gibi hazırlık işlemleri var ancak onları bu konuda anlatmayacağım ancak bu odayı inceleyerek nasıl yapılacağını öğrenebilirsiniz.

LFI Zafiyeti Nedir?

LFI zafiyeti php ile yazılan websitelerinde karşılaşılmaktadır. Herhangi bir dosyanın kullanıcıdan alındığı sırada ya da veri olarak yollandığı süreçte filtreleme işlemlerinde yapılan yanlışlıklardan kaynaklanmaktadır. Bunun sonucunda site ziyaretçileri yetkileri dışında istedikleri dosyanın içeriğini görüntüleyebilirler. LFI açığını kritik bir açık yapan hususlardan birisi ise RCE zafiyetine dönüştürülebilir olmasıdır.

RCE Zafiyeti Nedir?

RCE zafiyetinin karşılaşıldığı herhangi belirli bir programlama dili bulunmamaktadır çünkü çoğu programlama dilinde evaluation fonksiyonları mevcuttur. Bu zafiyete kullanıcı tarafından bir string ya da dosya enjekte edildikten sonra sitenin arkaplanında çalışan web programlama dilinde kullanılan parser yani ayrıştırıcının bu girdi üzerinde işlem yapması neden olmaktadır.

Log Zehirleme İşlemi

En temel şekilde log zehirleme yani poisoning işlemi, sunucu loglarına zararlı php kodları enjekte ederek gerçekleşmektedir. Ancak bu işlemin uygulanacağı dizinde okuma ve çalıştırma yetkileri bulunması önemli bir husustur.

Reaching RCE using LFI and log poisoning

Örnek Apache Log Dosyası

Sayfaya girdiğimizde aşağıdaki gibi bir ekran ile karşılaşıyoruz.

LFI Zafiyeti Bulunan Sayfa

?page parametresi ile apache log dosyalarını okumayı denediğimizde sayfada LFI zafiyetinin olduğunu anlıyoruz.

?page=/var/log/apache2/access.log
LFI ile Apache Log Dosyasını Görüntülemek

Logları okuyabildiğimize göre sıra zehirleme işleminde 🙂 İlk olarak burpsuite ile gelen/giden istekleri yakalamalıyız.

Gönderilen Web İsteği

İsteği yakaladık. Şimdi user-agent kısmına php kod enjekte edelim.

User-Agent: Mozilla/5.0 <?php system($_GET['lfi']) ?> Chrome/87.0.4280.66 Safari/537.36
Değiştirilen Web İsteği

CTRL+R ile değiştirmiş olduğumuz isteği Repeater’e gönderelim. Repeater’da lfi değerine whoami sorgusunu ekleyelim.

Komut Gönderme İşlemi

Sorgunun çalıştığını aşağıdaki görselden anlayabilirsiniz. Böylece LFI zafiyetini RCE’ye çevirmiş olduk ve komut çalıştırabiliyoruz.

Komut Gönderilen İsteğin Cevabı

Kendinize iyi bakın, sağlıcakla kalın… 🙂

 

Reklam
Reklam

wakeup

Interested in cyber sec. & software development.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu