-ScriptBlock {
+```
+
+This will load the vulnerable version of Angular from the specified URL and execute any arbitrary JavaScript code contained within it.
+
+これにより、指定されたURLから脆弱性のあるAngularのバージョンが読み込まれ、それに含まれる任意のJavaScriptコードが実行されます。
```markup
{{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1);//');}}
@@ -207,7 +224,7 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
#### Angular + `window`オブジェクトを返す関数を持つライブラリを使用したペイロード([この投稿をチェックしてください](https://blog.huli.tw/2022/09/01/en/angularjs-csp-bypass-cdnjs/)):
{% hint style="info" %}
-この投稿では、`cdn.cloudflare.com`(または他の許可されたJSライブラリのリポジトリ)からすべてのライブラリを**ロード**し、各ライブラリから追加されたすべての関数を実行し、**どの関数が`window`オブジェクトを返すか**を確認できることを示しています。
+この投稿では、`cdn.cloudflare.com`(または他の許可されたJSライブラリのリポジトリ)からすべてのライブラリを**ロード**し、各ライブラリから追加されたすべての関数を実行し、**どの関数がどのライブラリから`window`オブジェクトを返すか**を確認できることを示しています。
{% endhint %}
```markup
@@ -237,21 +254,22 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
```
### サードパーティのエンドポイント + JSONP
-JSONP(JSON with Padding)は、クロスドメインリクエストを実現するための一般的な手法です。これは、ウェブアプリケーションが異なるドメインのサードパーティエンドポイントにアクセスするために使用されます。
+JSONP(JSON with Padding)は、クロスドメインリクエストを実現するための一般的な手法です。これは、ウェブアプリケーションが異なるドメインのサードパーティエンドポイントにリクエストを送信する場合に使用されます。
-JSONPは、スクリプトタグを使用して外部スクリプトを読み込むことによって機能します。ウェブアプリケーションは、サードパーティのエンドポイントに対してスクリプトタグを生成し、コールバック関数を指定します。サードパーティのエンドポイントは、指定されたコールバック関数を含むJSONデータを返します。ウェブアプリケーションは、コールバック関数を使用してJSONデータを処理します。
+JSONPは、スクリプトタグを使用して外部スクリプトを読み込む方法を利用しています。ウェブアプリケーションは、サードパーティのエンドポイントに対してスクリプトタグを生成し、コールバック関数を指定します。サードパーティのエンドポイントは、指定されたコールバック関数を含むJSONデータを返します。ウェブアプリケーションは、コールバック関数を使用してJSONデータを処理します。
-この手法は、Content Security Policy(CSP)によって制限される場合があります。CSPは、ウェブアプリケーションが許可されたリソースのみにアクセスできるようにするためのセキュリティメカニズムです。CSPが適用されている場合、ウェブアプリケーションは指定されたドメイン以外のエンドポイントにアクセスできません。
+この手法は、Content Security Policy(CSP)によって制限される場合があります。CSPは、ウェブアプリケーションが許可されたリソースのみにアクセスできるようにするためのセキュリティメカニズムです。CSPが適用されている場合、ウェブアプリケーションは指定されたドメイン以外のエンドポイントにリクエストを送信することはできません。
-しかし、CSPバイパスのテクニックを使用することで、JSONPを使用してサードパーティのエンドポイントにアクセスすることができます。これにより、CSPの制限を回避し、ウェブアプリケーションが制限されたドメイン以外のデータにアクセスできるようになります。
+しかし、CSPバイパスのテクニックを使用することで、JSONPを使用してサードパーティのエンドポイントにリクエストを送信することができます。これにより、CSPの制限を回避し、クロスドメインリクエストを実現することができます。
-CSPバイパスの一般的なテクニックには、以下のものがあります。
+CSPバイパスの一般的な手法には、以下のようなものがあります。
-- ホワイトリストされたドメインを使用して、CSPの設定を回避する。
-- サブドメインを使用して、CSPの設定を回避する。
-- リダイレクトを使用して、CSPの設定を回避する。
+- ホワイトリストされたドメインを使用する
+- リクエストヘッダを操作する
+- サブリソースインテグリティ(SRI)をバイパスする
+- リダイレクトを利用する
-これらのテクニックを使用することで、CSPをバイパスし、JSONPを使用してサードパーティのエンドポイントにアクセスすることができます。ただし、これらのテクニックはセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
+これらの手法を使用することで、CSPをバイパスし、JSONPを使用したクロスドメインリクエストを実現することができます。ただし、これらの手法はセキュリティ上のリスクを伴うため、慎重に使用する必要があります。
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
@@ -276,7 +294,7 @@ CSPポリシーがフォルダを指す場合、**"/"**をエンコードする
オンラインの例:[ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output)
-### IframesによるJSの実行
+### IframesでのJS実行
{% content-ref url="../xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
[iframes-in-xss-and-csp.md](../xss-cross-site-scripting/iframes-in-xss-and-csp.md)
@@ -286,8 +304,8 @@ CSPポリシーがフォルダを指す場合、**"/"**をエンコードする
**base-uri**ディレクティブが不足している場合、[**dangling markup injection**](../dangling-markup-html-scriptless-injection.md)を実行するために悪用することができます。
-さらに、脆弱なページが相対パス(たとえば`/js/app.js`)を使用してスクリプトをロードしている場合、**Nonce**を使用して、**base** **tag**を悪用してスクリプトを**自分のサーバーからロードし、XSSを達成**することができます。\
-脆弱なページがhttpSで読み込まれる場合は、baseでhttpSのURLを使用してください。
+さらに、脆弱なページが相対パス(例:`/js/app.js`)を使用してスクリプトをロードしている場合、**Nonce**を使用して、**base** **tag**を悪用してスクリプトを**自分のサーバーからロードし、XSSを達成**することができます。\
+脆弱なページがhttpSでロードされている場合は、baseでhttpSのURLを使用してください。
```html
```
@@ -326,7 +344,7 @@ default-src 'self' 'unsafe-inline'; img-src *;
```
`'unsafe-inline'`は、コード内で任意のスクリプトを実行できることを意味します(XSSはコードを実行できます)。また、`img-src *`は、ウェブページで任意のリソースからの画像を使用できることを意味します。
-このCSPをバイパスする方法は、画像を介してデータを外部に流出させることです(この場合、XSSはボットによってアクセス可能なページでCSRFを悪用し、SQLiを含んだフラグを画像を介して抽出します)。
+このCSPをバイパスする方法は、画像を介してデータを外部に漏洩させることです(この場合、XSSはボットによってアクセス可能なページでCSRFを悪用し、SQLiを含んだフラグを画像を通じて抽出します)。
```javascript
```
@@ -358,7 +376,7 @@ script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
#### Edge
-Edgeでは、これだけをCSPに追加できれば十分です:**`;_`** Edgeは、**ポリシー全体を無効化**します。\
+Edgeでは、CSPにこれだけ追加できれば、**`;_`** Edgeは**ポリシー全体を無効に**します。\
例:[http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert(1)%3C/script%3E](http://portswigger-labs.net/edge\_csp\_injection\_xndhfye721/?x=;\_\&y=%3Cscript%3Ealert\(1\)%3C/script%3E)
### img-src \*;によるXSS(iframe)- タイムアタック
@@ -437,7 +455,7 @@ document.querySelector('DIV').innerHTML="