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, (^^ゞ