diff --git a/src/pentesting-web/content-security-policy-csp-bypass/README.md b/src/pentesting-web/content-security-policy-csp-bypass/README.md index 175f3fb40..e2a8625de 100644 --- a/src/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/src/pentesting-web/content-security-policy-csp-bypass/README.md @@ -1,14 +1,14 @@ -# Content Security Policy (CSP) Bypass +# コンテンツセキュリティポリシー (CSP) バイパス {{#include ../../banners/hacktricks-training.md}} -## What is CSP +## CSPとは -Content Security Policy (CSP) は、主に **クロスサイトスクリプティング (XSS) などの攻撃から保護することを目的としたブラウザ技術** として認識されています。これは、ブラウザがリソースを安全に読み込むことができるパスとソースを定義し、詳細に説明することによって機能します。これらのリソースには、画像、フレーム、JavaScript などのさまざまな要素が含まれます。たとえば、ポリシーは、同じドメイン (self) からのリソースの読み込みと実行を許可することがあり、インラインリソースや `eval`、`setTimeout`、`setInterval` などの関数を通じて文字列コードの実行を含むことがあります。 +コンテンツセキュリティポリシー (CSP) は、主に**クロスサイトスクリプティング (XSS) などの攻撃からの保護**を目的としたブラウザ技術として認識されています。これは、ブラウザがリソースを安全に読み込むことができるパスとソースを定義し、詳細に説明することによって機能します。これらのリソースには、画像、フレーム、JavaScriptなどのさまざまな要素が含まれます。たとえば、ポリシーは、同じドメイン (self) からのリソースの読み込みと実行を許可することがあり、インラインリソースや `eval`、`setTimeout`、`setInterval` などの関数を通じて文字列コードの実行を含みます。 -CSP の実装は、**レスポンスヘッダー**を通じて、または **HTML ページにメタ要素を組み込むことによって** 行われます。このポリシーに従い、ブラウザはこれらの規定を積極的に施行し、検出された違反を直ちにブロックします。 +CSPの実装は、**レスポンスヘッダー**を介して行われるか、**HTMLページにメタ要素を組み込むことによって行われます**。このポリシーに従い、ブラウザはこれらの規定を積極的に施行し、検出された違反を直ちにブロックします。 -- Implemented via response header: +- レスポンスヘッダーを介して実装される: ``` Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self'; ``` @@ -21,7 +21,7 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; CSPはこれらのヘッダーを使用して強制または監視できます: - `Content-Security-Policy`: CSPを強制します; ブラウザは違反をブロックします。 -- `Content-Security-Policy-Report-Only`: 監視に使用されます; 違反を報告しますが、ブロックはしません。プレプロダクション環境でのテストに最適です。 +- `Content-Security-Policy-Report-Only`: 監視用に使用されます; 違反を報告しますが、ブロックはしません。プレプロダクション環境でのテストに最適です。 ### リソースの定義 @@ -39,12 +39,12 @@ object-src 'none'; ``` ### ディレクティブ -- **script-src**: JavaScriptの特定のソースを許可します。これにはURL、インラインスクリプト、イベントハンドラやXSLTスタイルシートによってトリガーされるスクリプトが含まれます。 +- **script-src**: JavaScriptの特定のソースを許可します。これには、URL、インラインスクリプト、イベントハンドラーやXSLTスタイルシートによってトリガーされるスクリプトが含まれます。 - **default-src**: 特定のフェッチディレクティブが存在しない場合にリソースを取得するためのデフォルトポリシーを設定します。 - **child-src**: ウェブワーカーや埋め込まれたフレームコンテンツのために許可されたリソースを指定します。 - **connect-src**: fetch、WebSocket、XMLHttpRequestなどのインターフェースを使用して読み込むことができるURLを制限します。 - **frame-src**: フレームのためのURLを制限します。 -- **frame-ancestors**: 現在のページを埋め込むことができるソースを指定します。これは``、` // The bot will load an URL with the payload @@ -542,15 +542,15 @@ run() ``` ### Via Bookmarklets -この攻撃は、攻撃者が**ユーザーにブラウザのブックマークレットの上にリンクをドラッグアンドドロップさせる**というソーシャルエンジニアリングを含むことになります。このブックマークレットには、**悪意のあるJavaScript**コードが含まれており、ドラッグアンドドロップまたはクリックされると、現在のウェブウィンドウのコンテキストで実行され、**CSPをバイパスしてクッキーやトークンなどの機密情報を盗むことを可能にします**。 +この攻撃は、攻撃者が**ユーザーにブラウザのブックマークレットの上にリンクをドラッグアンドドロップさせることを納得させる**というソーシャルエンジニアリングを含みます。このブックマークレットには、**悪意のあるjavascript**コードが含まれており、ドラッグアンドドロップまたはクリックされると、現在のウェブウィンドウのコンテキストで実行され、**CSPをバイパスしてクッキーやトークンなどの機密情報を盗むことを可能にします**。 詳細については、[**こちらで元のレポートを確認してください**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/)。 ### CSP bypass by restricting CSP -[**このCTFの解説**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)では、許可されたiframe内により制限されたCSPを注入することでCSPがバイパスされ、特定のJSファイルの読み込みが禁止され、その後、**プロトタイプ汚染**または**DOMクラッタリング**を介して**異なるスクリプトを悪用して任意のスクリプトを読み込むことができました**。 +[**このCTFの解説**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)では、許可されたiframe内により制限されたCSPを注入することでCSPがバイパスされ、特定のJSファイルの読み込みが禁止され、その後、**プロトタイプ汚染**または**DOMクラッタリング**を介して**異なるスクリプトを悪用して任意のスクリプトを読み込む**ことが可能になりました。 -**`csp`**属性を使用して、**IframeのCSPを制限することができます**: +**`csp`**属性を使用して、**IframeのCSPを制限する**ことができます: ```html