
Расширение Burp Suite для фаззинга сообщений WebSocket с помощью пользовательского кода Python, поддерживающее несколько движков, маршрутизацию через HTTP-промежуточное ПО и анализ ответов.
Расширение для фаззинга сообщений WebSocket с использованием пользовательского кода на Python.
Примечание: при этом будет установлено новое соединение WebSocket для отправки сообщений.
queue_websockets(base_websocket, message)Объект websocket_connection предоставляет следующие методы:
create(base_websocket) создаёт соединение WebSocket с использованием Burp Suite.create(base_websocket, engine) инициализирует соединение с использованием одного из поддерживаемых движков: BURP, TURBO или THREADED.create(base_websocket, engine, config) инициализирует соединение с ручными настройками с использованием движков TURBO и THREADED.config() создаёт конфигурацию по умолчанию, используемую движками TURBO и THREADEDconfig(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(): определяет, отличаются ли атрибуты сообщения от других сообщений на основе: