- 4 Şub 2022
- 1,324
- 361
Herkese merhabalar TurkHackTeam Ailesi, ben Siber Güvenlik Kulübünden SecurityFaTHeR bügün Sizlere Server Side Template Injection(SSTI) Nedir ve Tespiti hakkında bilgi vermeye çalışacağım konumuza geçelim.
Server Side Template Injection(SSTI) Nedir ?![](https://i.hizliresim.com/gdqz3wi.png)
Server side template injection(SSTI) saldırganların server tarafında kullanılan yerel şablonlara kötü niyetli komutları enjekte etmesiyle oluşur. Şablon motoruna geçersiz kullanıcı girişi yerleştirildiği zaman yani giriş doğrulaması düzgün işlenmediğinde güvenlik açığı oluşur ve bu da uzaktan kod yürütülmesine(RCE)neden olabilir.
Server Side Template Injection(SSTI) Tespiti
Server Side Template Injection(SSTI) zaafiyetinin varlığını çeşitli yollar ile bulabiliriz.Hangi templateyi kullanmış ise o templatenin payloadı ile saldırabiliriz.eğer biz {{7*7}} bir kod girersek 49 değerini yazdırırsa burada bir Server Side Template Injection(SSTI) var olduğunu gösterir.Bundan sonra yapmamız gereken hangi dille yazılan templatenin kullanıldığını öğrenmek ve o dildeki kodları kullanarak back-endde kod çalıştırmaya çalışmak.
Örnek:
Kod:
${7*7} # kullanılan template FreeMarker(java) olabilir.
{{7*'7'}} & {{7*7}} kullanılan template Twig yada Jinja2(python) olabilir.
Server Side Template Injection Nerelerde Olabilir ?
Kod:
127.0.0.1/product_id={7*7} # parametrelerden olabilir.
Input alanlarında olabilir.
127.0.0.1/{7*7} # slashtan sonra olabilir.
127.0.0.1/server_id=3'<script>alert(1)</script>{7*7} # Reflected XSS olduğu yerlerde olabilir.
Templateyi userdan alıyorsa Server Side Template Injection Olabilir.
Server Side Template Injection Örnek Lab Çözümü
İlk olarak labımıza giriyoruz ve bizden istediği /home/carlos dizinindeki morale.txt dosyasını silmemizi istiyor.ERB documentation dediği için ruby dilinde yazılmış bir template var o zaman ruby dilinde enjeksiyon yapacağız.
Gördüğünüz gibi 'message=' parametresine SecurityFaTHeR girdiğim zaman ekrana yansıttı burada bir reflected xss var şimdi Server Side Templates Injection(SSTI) payloadı deneyelim.
Gördüğünüz gibi ekrana 49 yazıldı burada Server Side Template Injection var.Zaafiyeti Remote Code Execution'a çevirmeyi deneyelim.
Gördüğünüz gibi ruby ile yazılmış templatede system komutunu çağırarak Server Side Template Injection(SSTI)'yi Remote Code Execution'a çevirdik.Şimdi labda bizden istediği görevi yapalım.
Server Side Template Injection(SSTI)'yi exploit chaning yaparak Remote Code Execution zaafiyetine dönüştürdük ve serverda kod çalıştırarak labdaki görevi yaptık ve labımızı çözdük.
![](https://i.hizliresim.com/t0qqedq.png)
Bügün sizlere Server Side Template Injection(SSTI) Nedir ve Tespiti hakkında bilgi vermeye çalıştım iyi günler.
Son düzenleme: