diff --git a/pentesting-web/ssti-server-side-template-injection/README.md b/pentesting-web/ssti-server-side-template-injection/README.md
index be2749191..552471995 100644
--- a/pentesting-web/ssti-server-side-template-injection/README.md
+++ b/pentesting-web/ssti-server-side-template-injection/README.md
@@ -43,7 +43,7 @@ http://vulnerable-website.com/?name={{bad-stuff-here}}
Для виявлення ін'єкції шаблонів на стороні сервера (SSTI) спочатку **фуззинг шаблону** є простим підходом. Це передбачає впровадження послідовності спеціальних символів (**`${{<%[%'"}}%\`**) у шаблон і аналізування відмінностей у відповіді сервера на звичайні дані в порівнянні з цим спеціальним пейлоадом. Ознаки вразливості включають:
-* Викинуті помилки, які виявляють вразливість і потенційно движок шаблонів.
+* Викинуті помилки, що виявляють вразливість і потенційно движок шаблонів.
* Відсутність пейлоаду у відображенні або частини його відсутні, що вказує на те, що сервер обробляє його інакше, ніж звичайні дані.
* **Текстовий контекст**: Відрізняти від XSS, перевіряючи, чи сервер оцінює вирази шаблону (наприклад, `{{7*7}}`, `${7*7}`).
* **Контекст коду**: Підтвердити вразливість, змінюючи вхідні параметри. Наприклад, зміна `greeting` у `http://vulnerable-website.com/?greeting=data.username` для перевірки, чи є вихід сервера динамічним або фіксованим, як у `greeting=data.username}}hello`, що повертає ім'я користувача.
@@ -123,7 +123,7 @@ ${"freemarker.template.utility.Execute"?new()("id")}
${product.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().resolve('/home/carlos/my_password.txt').toURL().openStream().readAllBytes()?join(" ")}
```
-**Freemarker - обхід пісочниці**
+**Freemarker - Обхід пісочниці**
⚠️ працює лише на версіях Freemarker нижче 2.3.30
```java
@@ -196,7 +196,7 @@ Thymeleaf також пропонує _попередню обробку вир
```
-Це вказує на те, що якщо движок шаблонів неправильно обробляє ці введення, це може призвести до віддаленого виконання коду, що отримує доступ до URL-адрес, таких як:
+Це вказує на те, що якщо движок шаблонів неправильно обробляє ці введення, це може призвести до віддаленого виконання коду з доступом до URL-адрес, таких як:
```
http://localhost:8082/(7*7)
http://localhost:8082/(${T(java.lang.Runtime).getRuntime().exec('calc')})
@@ -326,7 +326,7 @@ Jinjava - це проект з відкритим кодом, розроблен
* `{{'a'.toUpperCase()}}` - "A"
* `{{'a'.concat('b')}}` - "ab"
* `{{'a'.getClass()}}` - java.lang.String
-* `{{request.getClass()}}` - клас com.hubspot.content.hubl.context.TemplateContextRequest
+* `{{request.getClass()}}` - class com.hubspot.content.hubl.context.TemplateContextRequest
* `{{request.getClass().getDeclaredMethods()[0]}}` - public boolean com.hubspot.content.hubl.context.TemplateContextRequest.isDebug()
Шукайте "com.hubspot.content.hubl.context.TemplateContextRequest" і знайдіть [проект Jinjava на Github](https://github.com/HubSpot/jinjava/).
@@ -382,11 +382,11 @@ Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstanc
* `${{7*7}}` - 49
* `${{request}}, ${{session}}, {{faceContext}}`
-Мова виразів (EL) є основною функцією, яка полегшує взаємодію між презентаційним шаром (як веб-сторінки) та логікою програми (як керовані бінари) в JavaEE. Вона широко використовується в різних технологіях JavaEE для спрощення цієї комунікації. Основні технології JavaEE, що використовують EL, включають:
+Мова виразів (EL) є основною функцією, яка полегшує взаємодію між презентаційним шаром (як веб-сторінки) та логікою програми (як керовані боби) в JavaEE. Вона широко використовується в багатьох технологіях JavaEE для спрощення цієї комунікації. Основні технології JavaEE, що використовують EL, включають:
* **JavaServer Faces (JSF)**: Використовує EL для прив'язки компонентів на сторінках JSF до відповідних даних та дій на сервері.
-* **JavaServer Pages (JSP)**: EL використовується в JSP для доступу та маніпуляції даними на сторінках JSP, що полегшує зв'язок елементів сторінки з даними програми.
-* **Контексти та впровадження залежностей для Java EE (CDI)**: EL інтегрується з CDI для забезпечення безперебійної взаємодії між веб-шаром та керованими бінарами, що забезпечує більш узгоджену структуру програми.
+* **JavaServer Pages (JSP)**: EL використовується в JSP для доступу та маніпуляції даними в JSP-сторінках, що полегшує зв'язок елементів сторінки з даними програми.
+* **Контексти та впровадження залежностей для Java EE (CDI)**: EL інтегрується з CDI для забезпечення безперебійної взаємодії між веб-шаром та керованими бобами, що забезпечує більш узгоджену структуру програми.
Перегляньте наступну сторінку, щоб дізнатися більше про **експлуатацію EL інтерпретаторів**:
@@ -396,7 +396,7 @@ Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstanc
### Groovy (Java)
-Наступні обходи Security Manager були взяті з цього [**опису**](https://security.humanativaspa.it/groovy-template-engine-exploitation-notes-from-a-real-case-scenario/).
+Наступні обходи менеджера безпеки були взяті з цього [**опису**](https://security.humanativaspa.it/groovy-template-engine-exploitation-notes-from-a-real-case-scenario/).
```java
//Basic Payload
import groovy.*;
@@ -778,9 +778,9 @@ home = pugjs.render(injected_page)
> Jinja2 - це повнофункціональний шаблонний движок для Python. Він має повну підтримку юнікоду, необов'язкове інтегроване середовище виконання в пісочниці, широко використовується та ліцензований за BSD.
-* `{{7*7}} = Помилка`
+* `{{7*7}} = Error`
* `${7*7} = ${7*7}`
-* `{{foobar}} Нічого`
+* `{{foobar}} Nothing`
* `{{4*4}}[[5*5]]`
* `{{7*'7'}} = 7777777`
* `{{config}}`
@@ -892,7 +892,7 @@ ${x}
```
### SSTI в GO
-У шаблонному движку Go підтвердження його використання можна здійснити за допомогою специфічних пейлоадів:
+У шаблонному двигуні Go підтвердження його використання можна здійснити за допомогою специфічних пейлоадів:
* `{{ . }}`: Відкриває структуру даних. Наприклад, якщо передано об'єкт з атрибутом `Password`, `{{ .Password }}` може його розкрити.
* `{{printf "%s" "ssti" }}`: Очікується, що відобразить рядок "ssti".
@@ -900,7 +900,7 @@ ${x}
**Експлуатація XSS**
-З пакетом `text/template` XSS може бути простим шляхом безпосереднього вставлення пейлоаду. На відміну від цього, пакет `html/template` кодує відповідь, щоб запобігти цьому (наприклад, `{{""}}` призводить до `<script>alert(1)</script>`). Проте визначення та виклик шаблону в Go можуть обійти це кодування: \{{define "T1"\}}alert(1)\{{end\}} \{{template "T1"\}}
+З пакетом `text/template` XSS може бути простим шляхом вставки пейлоаду безпосередньо. На відміну від цього, пакет `html/template` кодує відповідь, щоб запобігти цьому (наприклад, `{{""}}` призводить до `<script>alert(1)</script>`). Проте визначення та виклик шаблону в Go можуть обійти це кодування: \{{define "T1"\}}alert(1)\{{end\}} \{{template "T1"\}}
**Експлуатація RCE**
@@ -915,7 +915,7 @@ return string(out)
```
**Більше інформації**
-* [https://blog.takemyhand.xyz/2020/05/ssti-breaking-gos-template-engine-to.html](https://blog.takemyhand.xyz/2020/05/ssti-breaking-gos-template-engine-to.html)
+* [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/)
### Більше експлойтів