
Burp Suite 拡張機能で、カスタム Python コードによる WebSocket メッセージのファジングを可能にし、複数のエンジン、HTTP ミドルウェアルーティング、レスポンス分析をサポートします。
カスタム Python コードを使用して WebSocket メッセージをファジングするための拡張機能です。
注: これにより、メッセージ送信用の新しい WebSocket 接続が確立されます。
queue_websockets(base_websocket, message)websocket_connection オブジェクトは以下のメソッドを提供します:
create(base_websocket) は Burp Suite を使用して WebSocket 接続を作成します。create(base_websocket, engine) はサポートされているエンジンのいずれかを使用して接続を初期化します: BURP、TURBO、または THREADED。create(base_websocket, engine, config) は TURBO および THREADED エンジンを使用して手動設定で接続を初期化します。config() は TURBO および THREADED エンジンで使用されるデフォルト設定を作成しますconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - 接続タイムアウト (Integer)sendingInterval - WebSocket フレーム間の遅延 (ミリ秒) (Integer)retries - 接続が閉じられた場合の再接続試行回数 (Integer)number_of_threads - THREADED エンジンで使用されるスレッド数 (Integer)hello_message - 接続時に送信される最初の WebSocket メッセージ (String)send_ping_messages - エンジンが ping メッセージを送信するかどうか (boolean)use_chunks - エンジンがチャンク化されたリクエストを送信するかどうか (boolean)WebSocket 接続が確立されると、メッセージを送信キューに追加できます。
このオブジェクトの queue() メソッドを使用します。
queue(String message): メッセージを送信しますqueue(String message, String replacement): メッセージを送信します。replacement はメッセージ内のすべての %s を置き換えますqueue(FrameType code, byte[] message): 指定されたタイプコードでペイロードを送信します:queue(FrameType code, byte[] message, Integer legth): カスタム長とタイプコードでペイロードを送信します。queue(FrameType code, byte[] message, String legth): Long 文字列として定義されたカスタム長でペイロードを送信します。queueWithComment(String message, String comment): コメントを添付してメッセージを送信します。queueWithComment(String message, String replacement, String comment): コメント付きでメッセージを送信し、replacement がメッセージ内のすべての %s を置き換えます。message は画面上部の WebSocket メッセージエディターの内容を表します。手動で編集することも、Python スクリプト内で変更することもできます。
handle_outgoing_message(websocket_message)このメソッドを使用して、送信メッセージを条件付きで結果テーブルに追加します。
handle_incoming_message(websocket_message)このメソッドを使用して、受信メッセージを条件付きで結果テーブルに追加します。
websocket_messageメソッド:
getMessage(): メッセージを String として取得します。getDirection(): メッセージの方向を取得します (burp.api.montoya.websocket.Direction)。getLength(): メッセージの長さを取得します。getDateTime(): タイムスタンプを取得します (java.time.LocalDateTime)。getComment(): メッセージに関連付けられたコメントを取得します。setComment(String comment): メッセージにコメントを設定します。getConnection(): 接続を取得し、追加のメッセージをキューに追加できるようにします。getHash(): メッセージハッシュを取得します。同じハッシュを持つ受信メッセージと送信メッセージは、リクエスト-レスポンスペアとしてマークされます。setHash(long id): メッセージにカスタムハッシュを設定します。getTime(): レスポンス時間をミリ秒で取得します。isInteresting(): 以下に基づいて、メッセージ属性が他のメッセージと異なるかどうかを判定します: