Merhaba Değerli TürkHackTeam Kullancıları Ben Anka Red Teamdan Crox Bu Konuda Sizlere Client-Side Template Injection Zaafiyeti Nedir Onu Anlatacağım..
Server Side Template İnjection Nedir...
Server Side Template İnjection Bir Kullanıcıdan alınan inputların direkt olarak template engine tarafından render edilmesinden kaynaklı bir güvenlik açığıdır...Saldırgan, Hedefe, bu açığı kullanarak Template Engine tarafından render edilecek olan değere kendi şablonlarını sıkıştırırlar.
Saldırgan tarafından sıkıştırılan bu şablonlar render edildikten sonra saldırgan Arbitrary File Read, Remote Command Execution gibi yüksek derecede riskli zaafiyetlerde ortaya çıkablir...
Örnek Vercek Olursak Aşağıdaki kodu inceledeğimizde kullanıcıdani sim parametresi ile bir değer alındığını ve alınan bu değerin Merhaba ile concatenate edilip render edildiğini görüyorz...
Burada apaçık bir SSTI zafiyeti vardır. Bunun sebebi; kullanıcıdan alınan isim parametresindeki değerin doğrudan render fonksiyonuna aktarılmasıdır...
Template Engine’ lerin neden kullanıldığını daha iyi anlayabilmemiz için öncelikle MVC mimarisine göz atalım...
MVC NEDİR..
Mvc Model-View-Controller kelimelerinin baş harflerinden oluşmuştur
Model :
Model, verilerin şeklini ve iş mantığını temsil eder. Uygulamanın verilerini saklar ve barındırır, Model nesneleri, model durumunu bir veritabanında alır ve saklar.
View Nedir?
View Mvc'de arayüzlerinin oluşturulduğu bölümdür. Bu bölümde projenin kullanıcılara sunulacak olan HTML dosyaları yer almaktadır...Controller Nedir?
Bu Kısımda View İle Model Arasındaki Bğlnatı kurulur, Kullanıcılardan gelen istekler (request) Controller’larda değerlendirilir, isteğin detayına göre hangi işlemlerin yapılacağı ve kullanıcıya hangi View’ın döneceği (response) belirtilir.
Bir örnek verecek olursak;
Kullanıcı http://turkhackteam.or/forumlar adresine Controller katmanının karşılaması sayesinde bir istekte bulunuyor.
İstenilen forumlar yazıları vs içeriklerin hepsi veritabanında tutulduğundan Controller katmanı Model katmanına içerikleri toparlayıp kendisine vermesini istiyor..
Controller katmanı gelen içerik yığınını (model object) düzenleyip, View katmanının zorlamadan işleyebileceği hale (data array) sokuyor ve kullanıcıya iletmesi için View katmanına veriyor.
View katmanı gelen yazı dizisini bir döngü içerisinde HTML template’indeki uygun yerlere basıyor.
EVET DEĞERLİ ARKDAŞLR MVC NEDİR ONUDA GÖRDÜK ŞİMDİ DEVAM EDİYORUM VE TEMPLATE İNJECTİON NEDİR ONUDA GÖRELİM..
TEMPLATE İNJECTİON NEDİR..Bir web uygulamasında bulunan şablonlara girdi ile geliştiricinin bilgi dahilinde orayı sömürmek, XSS(Cross-Site Scripting) eklemek ve çalıştırmak kolaydır. Hatta sonrasında Template Injection ile bu zafiyete saldırıp, sunucu tarafına doğru saldırı için kullanılabilir. Böylelikle RCE(Remote Code Execution) zafiyeti bile oratya çıkabilir. XSS gibi bir girdiden RCE zfiyetine geçmek, hem web uygulamasının yapımcısının hatası hem de CMS(Content Management System) tarafından işlevsellik sunmak için template engine kullanılmasından kaynaklıdır...
EVET ARKADAŞLAR BU KONUM BU KADARDI ÇOK FAZLA Bİ KAYNAK OLMADIĞI İÇİN KISA Bİ KONU OLDU BU YÜZDEN SİZDEN ÖZÜR DİLEYEREK BİR DAHAKİ KONUDA GÖRÜŞMEK ÜZERE HOŞÇAKALIN...


