SSTI
Last updated
Was this helpful?
Last updated
Was this helpful?
Server side template injection, bir saldırganın native template syntax kullanarak bir şablona kötü amaçlı bir payload enjekte edebilmesi ve bunun sunucu tarafında çalıştırılmasıdır.
Template engine'ler sabit şablonları geçici verilerle birleştirerek web sayfaları oluşturmak üzere tasarlanmıştır.
Server side template injection saldırıları, kullanıcı girdisi veri olarak aktarılmak yerine doğrudan bir şablonda birleştirildiğinde ortaya çıkabilir.
Bu, saldırganların template engine'i manipüle etmek için keyfi template direktifleri enjekte etmelerine ve genellikle sunucunun kontrolünü tamamen ele geçirmelerine olanak tanır.
Adından da anlaşılacağı üzere, server-side template injection yükleri server-side olarak gönderilir ve değerlendirilir, bu da onları tipik bir client-side template injection'dan çok daha tehlikeli hale getirir.
Aşağıdaki karakterler ile template engine hatası görmeyi deneyebiliriz.
Sandbox Bypass
Sunucu tarafı şablon enjeksiyonunu önlemenin en iyi yolu, hiçbir kullanıcının yeni şablonları değiştirmesine veya göndermesine izin vermemektir. Ancak, iş gereksinimleri nedeniyle bu bazen kaçınılmaz olabilir.
Sunucu tarafı şablon enjeksiyonu güvenlik açıklarını önlemenin en basit yollarından biri, kesinlikle gerekli olmadıkça her zaman Mustache gibi "logic-less" bir şablon motoru kullanmaktır. Mantığı sunumdan mümkün olduğunca ayırmak, en tehlikeli şablon tabanlı saldırılara maruz kalmanızı büyük ölçüde azaltabilir.
Bir başka önlem de kullanıcıların kodlarını yalnızca potansiyel olarak tehlikeli modüllerin ve işlevlerin tamamen kaldırıldığı korumalı bir ortamda çalıştırmaktır. Ne yazık ki, güvenilmeyen kodu korumalı alana almak doğası gereği zordur ve bypass edilmeye yatkındır.
Son olarak, bir başka tamamlayıcı yaklaşım da keyfi kod çalıştırmanın kaçınılmaz olduğunu kabul etmek ve şablon ortamınızı örneğin kilitli bir Docker konteynerinde dağıtarak kendi korumalı alanınızı uygulamaktır.
SSTIMAP:
Portswigger Academy:
Hacktricks: