
Estensione di Burp Suite per il fuzzing dei messaggi WebSocket con codice Python personalizzato, che supporta più motori, routing tramite middleware HTTP e analisi delle risposte.
Un'estensione per il fuzzing dei messaggi WebSocket utilizzando codice Python personalizzato.
Nota: questo stabilirà una nuova connessione WebSocket per l'invio dei messaggi.
queue_websockets(base_websocket, message)L'oggetto websocket_connection fornisce i seguenti metodi:
create(base_websocket) crea una connessione WebSocket utilizzando Burp Suite.create(base_websocket, engine) inizializza una connessione utilizzando uno dei motori supportati: BURP, TURBO o THREADED.create(base_websocket, engine, config) inizializza una connessione con impostazioni manuali utilizzando i motori: TURBO e THREADED.config() crea la configurazione predefinita utilizzata dai motori TURBO e THREADEDconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - timeout di connessione (Integer)sendingInterval - ritardo tra i frame WebSocket in millisecondi (Integer)retries - numero di tentativi di riconnessione se la connessione si chiude (Integer)number_of_threads - numero di thread utilizzati dal motore THREADED (Integer)hello_message - messaggio WebSocket iniziale inviato alla connessione (String)send_ping_messages - se il motore deve inviare messaggi ping (boolean)use_chunks - se il motore deve inviare richieste in chunk (boolean)Una volta stabilita una connessione WebSocket, i messaggi possono essere accodati per l'invio.
Usa il metodo queue() su questo oggetto.
queue(String message): Invia il messaggioqueue(String message, String replacement): Invia il messaggio. replacement sostituirà tutte le istanze di %s nel tuo messaggioqueue(FrameType code, byte[] message): Invia un payload con un codice di tipo specificato:queue(FrameType code, byte[] message, Integer legth): Invia un payload con una lunghezza e un codice di tipo personalizzati.queue(FrameType code, byte[] message, String legth): Invia un payload con una lunghezza personalizzata definita come stringa Long.queueWithComment(String message, String comment): Invia un messaggio con un commento allegato.queueWithComment(String message, String replacement, String comment): Invia un messaggio con un commento, con replacement che sostituisce tutte le istanze di %s nel messaggio.Il message rappresenta il contenuto dell'editor dei messaggi WebSocket nella parte superiore dello schermo. Può essere modificato manualmente o all'interno dello script Python.
handle_outgoing_message(websocket_message)Usa questo metodo per aggiungere condizionatamente i messaggi in uscita alla tabella dei risultati.
handle_incoming_message(websocket_message)Usa questo metodo per aggiungere condizionatamente i messaggi in entrata alla tabella dei risultati.
websocket_messageMetodi:
getMessage(): Recupera il messaggio come String.getDirection(): Recupera la direzione del messaggio (burp.api.montoya.websocket.Direction).getLength(): Recupera la lunghezza del messaggio.getDateTime(): Recupera il timestamp (java.time.LocalDateTime).getComment(): Recupera il commento associato al messaggio.setComment(String comment): Imposta un commento sul messaggio.getConnection(): Recupera la connessione, consentendo di accodare messaggi aggiuntivi.getHash(): Recupera l'hash del messaggio. I messaggi in entrata e in uscita con lo stesso hash sono contrassegnati come coppie richiesta-risposta.setHash(long id): Imposta un hash personalizzato per il messaggio.getTime(): Recupera il tempo di risposta in millisecondi.isInteresting(): Determina se gli attributi del messaggio differiscono da altri messaggi in base a: