Joomla Üzerindeki Uygulama Zafiyeti İstismarı ile FatalShell PHP Kodunun Uygulamaya Gömülerek İşletim Sistemine Erişim Sağlanması

Web uygulaması sızma testleri sırasında girdi kontrollerinin ve işlenmesinin uygun şekilde gerçekleştirilmediği durumlarda zafiyet ortaya çıkabilir. Bu yazıda yönetici hakları ile erişim sağlanan Joomla arayüzündeki zafiyet, bir PHP kodunun hedefe yüklenmesi (webshell backdoor) yolu ile istismar edilecek ve kontrol eksikliği dolayısı ile işletim sistemine erişim sağlanacaktır.

Yazıda kullanılan Kevgir sanal makinesi https://canyoupwn.me/kevgir-vulnerable-vm/ bağlantısından indirilebilir. Joomla uygulamasına yönetici olarak erişim sağlandıktan sonra işletim sistemine kod atmak için şablon yönetimindeki (“Extensions > Template Manager”) zafiyet istismar edilecektir.

 

Zafiyet istismarı için şablon seçilir.

 

Şablonun HTML kodu düzenlenir.

 

HTML kodu varsayılan olarak aşağıdaki gibidir. Bu kod silinerek yerine yeni bir kod eklenecektir.

 

1) İnternetten İndirilen FatalShell Adlı WebShell Kodunun Kullanılması

Eklenecek olan yeni PHP kodu ile hedef sistemde kod çalıştırılabilecek veya dizinlerindeki dosyalara erişim sağlanabielcektir. Bu amaçla kullanılabilecek örnek FatalShell kodu Github sayfasından indirilebilir.

https://github.com/tdifg/WebShell/blob/master/Php/fatal.php

 

Bu kod, şablon kodunun bulunduğu alana yapıştırılır. Sonrasında da şablon kaydedilir.

 

Şablonun başarılı bir şekilde kaydedildiği görülür.

 

Sayfa çağırıldığında (veya önizleme yapıldığında) internetten indirilen zararlı PHP kodu çalışacaktır. Böylece dizinler arasında mevcut yetkiler dahilinde dolaşılabilir veya işlem yapılabilir.

 

Benzer olarak komut satırı elde edilebilir veya indirilen PHP kodunun sağladığı diğer işlemler gerçekleştirilebilir.

 

2) Basit Bir PHP Kodunun Kullanılması

Hedefe aşağıdaki gibi basit bir PHP kodu eklenerek komut satırı elde edilmesi de sağlanabilir.

 

Böylece sayfa çağırıldığında komut satırında web servisine ait kullanıcı yetkileri ile komut çalıştırılabilir.

http://192.168.30.139:8081/templates/beez/index.php?cmd=cat%20/etc/passwd

 

Daha basit bir yol olarak da aşağıdaki PHP kodu da kullanılabilirdi.

 

Kaynak:

KevGir: A simulation of real world exploits

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

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

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.