Shikata Ga Nai

Private? There is no such things.

WebSocket接続の複製・再接続・改変方法:Burp Repeaterによるハンドシェイク操作ガイド

Hello there, ('ω')ノ

✅ 概要

Burp Repeaterでは、WebSocketメッセージの送信だけでなく:

接続そのもの(ハンドシェイク)を複製・再接続・改変する機能が備わっています。

これにより、不正なトークンの注入やセッションの切替、接続条件の変更など、高度な診断が可能になります。


🛠 手順:Burp RepeaterでWebSocket接続を操作する

① WebSocket通信をRepeaterへ送る

  • Burpの「Proxy」タブの「WebSockets」や「Intercept」で通信を確認
  • 任意のメッセージを右クリック →「Send to Repeater」

② 接続の編集を開始

  • Repeaterタブで、画面上部のURLの右横にある**鉛筆アイコン(✏️)**をクリック
  • WebSocket connection wizard」が起動

③ 操作モードを選択

選択肢 内容
Attach 既存の接続にそのまま接続(変更なし)
Clone 今の接続を複製(ハンドシェイク含め再実行)
Reconnect 切断済みの接続を再接続(接続条件を編集可能)

→ 通常は Clone または Reconnect を選び、ハンドシェイクを編集可能にします。


④ ハンドシェイクリクエストを編集

  • 表示されるHTTPリクエスト(Upgrade: websocketを含む)を自由に編集:

    • CookieAuthorizationヘッダー
    • クエリパラメータ
    • 接続先パス

⑤ 「Connect」で再接続

  • 編集が完了したら「Connect」ボタンを押して接続を試みます。
  • 成功すれば、新しいWebSocketセッションが開始され、

    • そのセッション上で自由にメッセージ送信が可能になります。

🔍 この機能で可能になる攻撃・検証

検証対象 攻撃例
トークン偽装 他ユーザーのJWTトークンを使って再接続
セッション再利用 他人のCookieで接続試行し、データを盗む
URL書き換え 通常はアクセスできないサブエンドポイントへ接続
多段接続検証 別サーバー経由の攻撃(CSWSH: Cross-Site WebSocket Hijacking)検証 など

✅ まとめ

Burp RepeaterのWebSocket接続操作機能は、単なるメッセージ操作に留まらず、接続レベルでの侵入・偽装を可能にする強力な診断手段です。

ステップ ポイント
Clone または Reconnect を選択 ハンドシェイク編集可能に
HTTPリクエストを編集 Cookieやパラメータ、パスを書き換える
Connect実行 新規セッションで再検証・攻撃可能に

Best regards, (^^ゞ