21 Eylül 2016 Çarşamba

Web Uygulaması Güvenliği - File Upload

File upload web uygulaması üzerinden sunucuya zararlı yazılım yükleyerek gerçekleştirilen saldırılara verilen isimdir. Saldırgan yanlış yapılandırılmış web sitesi üzerine hazırladığı betiği yükleyerek uzak sunucuyu ele geçirebilir. 

File upload zafiyeti basit bir zafiyettir. Açığın doğurabileceği sonuçları ve istismarının kolaylığını göz önünde bulundurunca hiç de hafife alınacak bir açık olmadığı ortaya çıkacaktır. 

Web uygulamasının kuytu bir köşesinde gözden kaçmış bir SQL injection açığı, saldırganlar tarafından keşfedilmeyebilir. Öte yandan keşfedilen SQL injection açığı istismar edilemiyor olabilir. Fakat bir file upload açığı herhangi biri tarafından rahatlıkla istismar edilebilir ve doğuracağı sonuçlar bir SQL injection açığı ile hemen hemen aynı büyüklüklükte olacaktır.

Bir file upload saldırısı gerçekleştiren saldırganı simüle edecek olursak, öncelikle sunucu üzerinde çalıştırmak istediğimiz zararlı yazılımı oluşturmamız gerekiyor. Bizim durumumuzda bu php dilinde yazılmış bir arka-kapı.


Arka-kapıyı file inclusion açığı barındıran web sayfası üzerinden sunucuya yüklüyoruz.


Zararlı php yazılımının sunucuya yüklenip yüklenmediğini kontrol ediyoruz:

Görüntüden anlaşıldığı üzere, arka-kapımız sunucuya yüklenmiş. Zararlı yazılımın sunucu üzerinde çalıştırılması ile sunucuya yüklenen arka kapıya bağlanıyoruz, ve sunucuyu ele geçiriyoruz. 


Yukarıdaki görüntüde olduğu gibi sunucu üzerindeki bütün kullanıcı parolalarını görüntüleyebiliyoruz.

Saldırganlar bu noktadan sonra istedikleri zaman sunucuya bağlanabilir veya sunucuyu hizmet dışı bırakabilirler. Sunucuyu ele geçiren saldırganlar sunucu üzerindeki bütün bilgiye erişebilecek, veri tabanında ve web sayfasında değişiklikler yapabileceklerdir. Dahası, saldırganlar sunucunun bulunduğu yerel ağa sızabilir, böylece çok daha büyük çaplı saldırılar gerçekleştirebilirler.

DVWA üzerindeki "File Upload" sayfasını inceleyecek olursak:


Web sayfasında kullanıcıya verilen resim yükleme opsiyonunda dosya türüne dair bir kontrol sağlanmamıştır. Saldırganlar uygulamaya istedikleri dosya türlerini yükleyebilirler.

Web uygulaması doğru yapılandırıldığında:

Web sayfası kullanıcılardan sadece ‘.jpeg’ uzantılı dosyalar kabul edecektir. Böylece saldırganlar ham haliyle zararlı yazılımlarını sunucuya yükleyemezler. 

Fakat...

Bu tür çözümlerde sıklıkla gözden kaçan bir detay var:

Saldırganlar dosya uzantısını bir proxy aracılığıyla değiştirerek tarayıcıda yapılan filtrelemeyi atlatmaya çalışacaklardır. Bu nedenle dosya uzantısı kontrolünün sadece tarayıcıda değil aynı zamanda suncuda da yapılması büyük önem taşır.

File Upload açığının kolay istismar edilebildiğinin ve büyük hasarlara yol açabildiğinin üstünde durduk. 

Bir sonraki bölüm: Command İnjection
on 21 Eylül by Berk Cem Göksel |   Edit