Shikata Ga Nai

Private? There is no such things.

WebSocketメッセージの傍受と改変:Burp Proxyを使った診断手順

Hello there, ('ω')ノ

✅ 目的

WebSocket通信を使うアプリケーションでは、通信内容(メッセージ)を直接傍受・改変することで、認可バイパスやデータ改ざんなどの脆弱性を検出できます。

この解説では、Burp SuiteのProxy機能を使って、WebSocketメッセージをリアルタイムに傍受・編集・送信する手順を紹介します。


🛠 手順:Burp ProxyでWebSocket通信を傍受・改変する

1. Burpのブラウザを開く

  • Burp Suite付属のブラウザを使用してください。
  • これにより、すべての通信がBurpを経由するようになります。

2. WebSocketを使用するアプリの操作を開始

  • 通常のページ遷移とは異なり、チャット機能やリアルタイム通知などを含む機能でWebSocketが使用されていることが多いです。
  • Burpの「Proxy」→「WebSockets」タブに通信履歴が表示されればOKです。

3. Interceptタブで傍受を有効化

  • 「Proxy」→「Intercept」タブで、「Intercept is on」になっていることを確認します。
  • これにより、WebSocketメッセージ(クライアント→サーバー、またはその逆)をその場で確認・改変できます。

4. メッセージの確認と改変

  • 送信メッセージが表示されたら、必要に応じて内容を編集します。

    • 例:{"action":"getUser","id":2}{"action":"getUser","id":1} に変更
  • 編集後、「Forward」ボタンでメッセージを送信

🔧 補足:傍受対象の方向を指定する

Burpの設定から、以下のどちらを傍受するかを選択できます:

対象 設定方法
クライアント → サーバー 設定 > Proxy > WebSockets > 「Interception rules」で選択
サーバー → クライアント 同上。両方を対象にもできる

✅ 攻撃・診断のヒント

テスト項目 チェックポイント
認可チェック 他人のIDなどを指定した時に情報が漏れないか?
データ整合性 クライアントから不正なデータを送っても受理されないか?
セッション トークンなしでも接続・操作できてしまわないか?

✅ まとめ

Burp ProxyのIntercept機能を使えば、WebSocketメッセージもHTTPと同様に詳細に診断できます。

できること 内容
傍受 リアルタイムで送受信メッセージを確認
改変 攻撃ペイロードや異常値を挿入
Forward操作 実際にアプリケーションがどのように反応するかを検証

Best regards, (^^ゞ