Server Side Template Injection (SSTI) Nedir?

      Yorum yok Server Side Template Injection (SSTI) Nedir?

Tanım

Türkçe karşılığı Sunucu Taraflı Tema Enjeksiyonu olup, web uygulamalarında dinamik verileri sunmak için kullanılan şablonlara beklenilenin dışında girdi eklenerek tetiklenen bir güvenlik zafiyetidir.

  • Etkileri
  • Uzaktan kod çalıştırılabilir.
  • Dosya okuma-yazma, LFI/RFI,  bilgi ifşası ve yetki yükseltme zafiyetleri tetiklenebilir.

Tespiti

Kullanıcıdan alınan değer doğrudan render ediliyorsa zafiyet var demektir. Twig için örnek verecek olursak: ilgili parametreye verilen “{{7*7}}” ifadesi “49” değerini veriyorsa zafiyet var diyebiliriz.

İstismarı

Örnek payload: GET /ssti/ssti.php?name={{_self.env.registerUndefinedFilterCallback(“shell_exec”)}}{{_self.env.getFilter(“dir”)}} HTTP/1.1 Host: localhost

Bu payload girildiğinde sistem shell_exec fonksiyonunu çağırarak dir parametresini gönderip dosya ve dizinleri listeleyecektir.

Ayrıca zafiyeti tespit etmek ve sömürmek için tplmap adlı tool kullanılabilir.

Önlemler

SSTI zafiyetine maruz kalmamak için kullanıcıdan alınan değer değil, önceden hazırlanmış HTML şablonu render edilmelidir.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir