
Extensão do Burp Suite para fuzzing de mensagens WebSocket com código Python personalizado, com suporte a múltiplos mecanismos, roteamento de middleware HTTP e análise de respostas.
Uma extensão para fuzzing de mensagens WebSocket usando código Python personalizado.
Nota: Isso estabelecerá uma nova conexão WebSocket para enviar mensagens.
queue_websockets(base_websocket, message)O objeto websocket_connection fornece os seguintes métodos:
create(base_websocket) cria uma conexão WebSocket usando o Burp Suite.create(base_websocket, engine) inicializa uma conexão usando um dos engines suportados: BURP, TURBO ou THREADED.create(base_websocket, engine, config) inicializa uma conexão com configurações manuais usando os engines: TURBO e THREADED.config() cria a configuração padrão usada pelos engines TURBO e THREADEDconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - timeout de conexão (Integer)sendingInterval - atraso entre frames WebSocket em milissegundos (Integer)retries - número de tentativas de reconexão se a conexão fechar (Integer)number_of_threads - número de threads usadas pelo engine THREADED (Integer)hello_message - mensagem WebSocket inicial enviada ao conectar (String)send_ping_messages - se o engine deve enviar mensagens ping (boolean)use_chunks - se o engine deve enviar requisições em chunks (boolean)Uma vez que uma conexão WebSocket é estabelecida, mensagens podem ser enfileiradas para envio.
Use o método queue() neste objeto.
queue(String message): Envia a mensagemqueue(String message, String replacement): Envia a mensagem. replacement substituirá todas as instâncias de %s na sua mensagemqueue(FrameType code, byte[] message): Envia um payload com um código de tipo especificado:queue(FrameType code, byte[] message, Integer legth): Envia um payload com um comprimento e código de tipo personalizados.queue(FrameType code, byte[] message, String legth): Envia um payload com um comprimento personalizado definido como uma string Long.queueWithComment(String message, String comment): Envia uma mensagem com um comentário anexado.queueWithComment(String message, String replacement, String comment): Envia uma mensagem com um comentário, com replacement substituindo todas as instâncias de %s na mensagem.O message representa o conteúdo do editor de mensagens WebSocket na parte superior da tela. Ele pode ser editado manualmente ou modificado dentro do script Python.
handle_outgoing_message(websocket_message)Use este método para adicionar condicionalmente mensagens de saída à tabela de resultados.
handle_incoming_message(websocket_message)Use este método para adicionar condicionalmente mensagens de entrada à tabela de resultados.
websocket_messageMétodos:
getMessage(): Recupera a mensagem como uma String.getDirection(): Recupera a direção da mensagem (burp.api.montoya.websocket.Direction).getLength(): Recupera o comprimento da mensagem.getDateTime(): Recupera o timestamp (java.time.LocalDateTime).getComment(): Recupera o comentário associado à mensagem.setComment(String comment): Define um comentário na mensagem.getConnection(): Recupera a conexão, permitindo que mensagens adicionais sejam enfileiradas.getHash(): Recupera o hash da mensagem. Mensagens de entrada e saída com o mesmo hash são marcadas como pares requisição-resposta.setHash(long id): Define um hash personalizado para a mensagem.getTime(): Recupera o tempo de resposta em milissegundos.isInteresting(): Determina se os atributos da mensagem diferem de outras mensagens com base em: