diff --git a/SUMMARY.md b/SUMMARY.md index 514625187..f3d561127 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -541,7 +541,6 @@ * [Cookie Bomb](pentesting-web/hacking-with-cookies/cookie-bomb.md) * [CORS - Misconfigurations & Bypass](pentesting-web/cors-bypass.md) * [CRLF (%0D%0A) Injection](pentesting-web/crlf-0d-0a.md) -* [WebSocket Attacks](pentesting-web/websocket-attacks.md) * [CSRF (Cross Site Request Forgery)](pentesting-web/csrf-cross-site-request-forgery.md) * [Dangling Markup - HTML scriptless injection](pentesting-web/dangling-markup-html-scriptless-injection/README.md) * [SS-Leaks](pentesting-web/dangling-markup-html-scriptless-injection/ss-leaks.md) @@ -635,6 +634,7 @@ * [Reverse Tab Nabbing](pentesting-web/reverse-tab-nabbing.md) * [Unicode Injection](pentesting-web/unicode-injection/README.md) * [Unicode Normalization](pentesting-web/unicode-injection/unicode-normalization.md) +* [WebSocket Attacks](pentesting-web/websocket-attacks.md) * [Web Tool - WFuzz](pentesting-web/web-tool-wfuzz.md) * [XPATH injection](pentesting-web/xpath-injection.md) * [XSLT Server Side Injection (Extensible Stylesheet Languaje Transformations)](pentesting-web/xslt-server-side-injection-extensible-stylesheet-languaje-transformations.md) diff --git a/pentesting-web/websocket-attacks.md b/pentesting-web/websocket-attacks.md index d7da2ecf2..3be5b2447 100644 --- a/pentesting-web/websocket-attacks.md +++ b/pentesting-web/websocket-attacks.md @@ -14,15 +14,15 @@ ## WebSocketsとは -WebSocket接続は**HTTP**を介して開始され、通常は**長時間維持**されます。メッセージは**いつでもどちらの方向にも送信**でき、トランザクション的な性質はありません。接続は通常、クライアントまたはサーバーがメッセージを送信する準備ができるまで開いたままで、アイドル状態になります。\ -WebSocketsは、リアルタイムの金融データのリアルタイムフィードなど、**低遅延またはサーバー起点のメッセージ**が必要な状況で特に有用です。 +WebSocket接続は**HTTP**を介して開始され、通常は**長時間維持**されます。メッセージは**いつでもどちらの方向にも送信**でき、トランザクションの性質を持ちません。接続は通常、クライアントまたはサーバーがメッセージを送信する準備ができるまで開いたままでアイドル状態になります。\ +WebSocketsは、リアルタイムの金融データのフィードなど、**低遅延またはサーバー起点のメッセージ**が必要な状況で特に有用です。 ## WebSocket接続はどのように確立されますか? -(ここでは概要を示しますが、**WebSocket接続の詳細なガイド**は[**こちら**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc)で見つけることができます)。\ +(ここでは概要を見つけることができますが、**Webソケット接続の詳細なガイド**は[**こちら**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc)で見つけることができます)。\ WebSocket接続は通常、次のようなクライアントサイドのJavaScriptを使用して作成されます: ```javascript -var ws = new WebSocket("wss://normal-website.com/chat"); +var ws = new WebSocket("wss://normal-website.com/ws"); ``` **`wss`**プロトコルは、暗号化された**TLS**接続上でWebSocketを確立しますが、**`ws`**プロトコルは**暗号化されていない**接続を使用します。 @@ -51,14 +51,14 @@ WebSocketのハンドシェイクメッセージのいくつかの**特徴**に * リクエストとレスポンスの**`Connection`**と**`Upgrade`**ヘッダーは、これが**WebSocketのハンドシェイク**であることを示しています。 * **`Sec-WebSocket-Version`**リクエストヘッダーは、クライアントが使用したい**WebSocketプロトコルのバージョン**を指定します。通常は`13`です。 -* **`Sec-WebSocket-Key`**リクエストヘッダーには、ベース64でエンコードされた**ランダムな値**が含まれており、各ハンドシェイクリクエストでランダムに生成する必要があります。 +* **`Sec-WebSocket-Key`**リクエストヘッダーには、Base64でエンコードされた**ランダムな値**が含まれており、各ハンドシェイクリクエストでランダムに生成する必要があります。 * **`Sec-WebSocket-Accept`**レスポンスヘッダーには、`Sec-WebSocket-Key`リクエストヘッダーに提出された値のハッシュが含まれており、プロトコル仕様で定義された特定の文字列と連結されています。これにより、誤って設定されたサーバーやキャッシュプロキシからの誤った応答が防止されます。 **`Sec-WebSocket-Key`**ヘッダーには、キャッシュプロキシからのエラーを防ぐための**ランダムな値**が含まれており、認証やセッション管理の目的では使用されません(_CSRFトークンではありません_)。 ### Linuxコンソール -`websocat`を使用して、WebSocketとの生の接続を確立することができます。 +`websocat`を使用してWebSocketとの生の接続を確立することができます。 ```bash websocat --insecure wss://10.10.10.10:8000 -v ``` @@ -69,7 +69,7 @@ websocat -s 0.0.0.0:8000 #Listen in port 8000 ## MitM WebSocket接続 現在のローカルネットワークからクライアントが**HTTP WebSocket**に接続していることがわかった場合、[ARPスプーフィング攻撃](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing)を試して、クライアントとサーバーの間でMitM攻撃を実行することができます。\ -クライアントが接続しようとしている場合、次の手順を実行できます: +クライアントが接続しようとしている場合、次のコマンドを使用できます: ```bash websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v ``` @@ -87,7 +87,7 @@ websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v ## Websocket Lab -[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course)には、Websocketsを使用してウェブを起動するためのコードがあり、[**この投稿**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/)で説明があります。 +[**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course)には、Websocketsを使用してウェブを起動するためのコードがあり、[**この投稿**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/)には説明があります。 ## クロスサイトWebSocketハイジャッキング(CSWSH) @@ -99,7 +99,7 @@ websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v ### 簡単な攻撃 -**websocket**接続を**確立**する際には、**クッキー**が**サーバーに送信**されます。**サーバー**は、**送信されたクッキーに基づいて各**特定の**ユーザー**を**websocketセッションに関連付ける**ためにそれを使用しているかもしれません。 +**websocket**接続を**確立**する際には、**クッキー**が**サーバーに送信**されます。**サーバー**は、**送信されたクッキーに基づいて**各**特定のユーザー**を**websocketセッションに関連付ける**ためにそれを使用しているかもしれません。 その後、**例えば**、**websocket**サーバーがユーザーの会話の履歴を返す場合、メッセージに "**READY**" が送信されると、**単純なXSS**が接続を確立します(**クッキー**は**自動的に**送信され、被害者ユーザーを認証します)。 "**READY**" を**送信**することで、会話の履歴を**取得**することができます。 ```markup @@ -171,9 +171,9 @@ WebSocketsは、サーバーサイドとクライアントサイドにデータ ☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 -* **サイバーセキュリティ企業で働いていますか?** HackTricksで**会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセス**したり、HackTricksを**PDFでダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **サイバーセキュリティ企業で働いていますか?** 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)を手に入れましょう。 +* [**公式の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)**をフォロー**してください。 * **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。