Shikata Ga Nai

Private? There is no such things.

WebSocket通信の操作と脆弱性診断の基本

Helllo there, ('ω')ノ

🧠 WebSocketとは?

WebSocketは、ブラウザとサーバー間でリアルタイムかつ双方向通信を可能にする技術です。HTTP接続の初期リクエスト後に「WebSocketプロトコル」に切り替わり、常時接続が確立されます。


🔍 WebSocket通信のセキュリティ診断とは?

WebSocketのセキュリティ診断では、次のような脆弱性を狙います:

  • 本来許可されない操作の実行
  • 不正なデータの送信や改ざん
  • 認可の回避やセッション乗っ取り

🛠 Burp Suiteを使った診断手順

① WebSocket通信の確認

  1. Burpのブラウザで対象のアプリケーションにアクセス。
  2. アプリ内の特定操作(チャット送信、リアルタイム更新など)を実行。
  3. [Proxy] → [WebSockets] タブで、WebSocket通信が表示されることを確認。

② メッセージのインターセプトと改ざん

  1. [Proxy] → [Intercept] タブで「Intercept is on」に設定。
  2. ブラウザからのWebSocketメッセージがBurpに表示される。
  3. 必要に応じてJSONデータやパラメータを改ざんして「Forward」で送信。

③ メッセージのリプレイと生成

  1. WebSocketsタブで対象メッセージを右クリック。
  2. 「Send to Repeater」でメッセージを編集・再送信可能。
  3. 同様に、新しいメッセージを手動で作成し送ることも可能。

💡診断時のコツとポイント

  • WebSocketメッセージ内の「user_id」「role」「amount」など、パラメータ名に注目
  • WebSocket通信の認可チェックがサーバー側で行われているかを検証
  • リクエストパターンの再送信で制限回避や再利用の有無を確認
  • WebSocket通信にCSRFトークンの検証が存在しない場合も狙い目

✅ まとめ

WebSocketのセキュリティ診断は、双方向通信特有の構造や形式を理解したうえで、Burp Suiteを使って直接メッセージを操作することが重要です。HTTPと同様、適切な検証や認証が不足している場合、深刻な攻撃が成立する可能性があります。

Best regards, (^^ゞ