
Extensión de Burp Suite para fuzzing de mensajes WebSocket con código Python personalizado, compatible con múltiples motores, enrutamiento de middleware HTTP y análisis de respuestas.
Una extensión para el fuzzing de mensajes WebSocket utilizando código Python personalizado.
Nota: Esto establecerá una nueva conexión WebSocket para enviar mensajes.
queue_websockets(base_websocket, message)El objeto websocket_connection proporciona los siguientes métodos:
create(base_websocket) crea una conexión WebSocket utilizando Burp Suite.create(base_websocket, engine) inicializa una conexión utilizando uno de los motores soportados: BURP, TURBO o THREADED.create(base_websocket, engine, config) inicializa una conexión con configuraciones manuales utilizando los motores: TURBO y THREADED.config() crea la configuración predeterminada utilizada por los motores TURBO y THREADEDconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - tiempo de espera de conexión (Integer)sendingInterval - retraso entre frames WebSocket en milisegundos (Integer)retries - número de intentos de reconexión si la conexión se cierra (Integer)number_of_threads - número de hilos utilizados por el motor THREADED (Integer)hello_message - mensaje WebSocket inicial enviado al conectar (String)send_ping_messages - si el motor debe enviar mensajes ping (boolean)use_chunks - si el motor debe enviar solicitudes fragmentadas (boolean)Una vez establecida una conexión WebSocket, los mensajes se pueden encolar para su envío.
Utiliza el método queue() en este objeto.
queue(String message): Envía el mensajequeue(String message, String replacement): Envía el mensaje. replacement reemplazará todas las instancias de %s en tu mensajequeue(FrameType code, byte[] message): Envía un payload con un código de tipo especificado:queue(FrameType code, byte[] message, Integer legth): Envía un payload con una longitud y código de tipo personalizados.queue(FrameType code, byte[] message, String legth): Envía un payload con una longitud personalizada definida como una cadena Long.queueWithComment(String message, String comment): Envía un mensaje con un comentario adjunto.queueWithComment(String message, String replacement, String comment): Envía un mensaje con un comentario, con replacement reemplazando todas las instancias de %s en el mensaje.El message representa el contenido del editor de mensajes WebSocket en la parte superior de la pantalla. Se puede editar manualmente o modificar dentro del script de Python.
handle_outgoing_message(websocket_message)Utiliza este método para agregar condicionalmente mensajes salientes a la tabla de resultados.
handle_incoming_message(websocket_message)Utiliza este método para agregar condicionalmente mensajes entrantes a la tabla de resultados.
websocket_messageMétodos:
getMessage(): Recupera el mensaje como String.getDirection(): Recupera la dirección del mensaje (burp.api.montoya.websocket.Direction).getLength(): Recupera la longitud del mensaje.getDateTime(): Recupera la marca de tiempo (java.time.LocalDateTime).getComment(): Recupera el comentario asociado con el mensaje.setComment(String comment): Establece un comentario en el mensaje.getConnection(): Recupera la conexión, permitiendo encolar mensajes adicionales.getHash(): Recupera el hash del mensaje. Los mensajes entrantes y salientes con el mismo hash se marcan como pares solicitud-respuesta.setHash(long id): Establece un hash personalizado para el mensaje.getTime(): Recupera el tiempo de respuesta en milisegundos.isInteresting(): Determina si los atributos del mensaje difieren de otros mensajes basándose en: