
Burp-Suite-Erweiterung zum Fuzzing von WebSocket-Nachrichten mit benutzerdefiniertem Python-Code, mit Unterstützung für mehrere Engines, HTTP-Middleware-Routing und Antwortanalyse.
Eine Erweiterung zum Fuzzing von WebSocket-Nachrichten mit benutzerdefiniertem Python-Code.
Hinweis: Dadurch wird eine neue WebSocket-Verbindung zum Senden von Nachrichten hergestellt.
queue_websockets(base_websocket, message)Das Objekt websocket_connection bietet die folgenden Methoden:
create(base_websocket) erstellt eine WebSocket-Verbindung mit Burp Suite.create(base_websocket, engine) initialisiert eine Verbindung mit einer der unterstützten Engines: BURP, TURBO oder THREADED.create(base_websocket, engine, config) initialisiert eine Verbindung mit manuellen Einstellungen unter Verwendung der Engines TURBO und THREADED.config() erstellt die Standardkonfiguration, die von den Engines TURBO und THREADED verwendet wirdconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - Verbindungs-Timeout (Integer)sendingInterval - Verzögerung zwischen WebSocket-Frames in Millisekunden (Integer)retries - Anzahl der Wiederverbindungsversuche, wenn die Verbindung geschlossen wird (Integer)number_of_threads - Anzahl der von der Engine THREADED verwendeten Threads (Integer)hello_message - anfängliche WebSocket-Nachricht, die beim Verbindungsaufbau gesendet wird (String)send_ping_messages - ob die Engine Ping-Nachrichten senden soll (boolean)use_chunks - ob die Engine chunked Requests senden soll (boolean)Sobald eine WebSocket-Verbindung hergestellt ist, können Nachrichten zum Senden in die Warteschlange gestellt werden.
Verwenden Sie die Methode queue() für dieses Objekt.
queue(String message): Sendet die Nachrichtqueue(String message, String replacement): Sendet die Nachricht. replacement ersetzt alle Vorkommen von %s in Ihrer Nachrichtqueue(FrameType code, byte[] message): Sendet eine Payload mit einem angegebenen Typcode:queue(FrameType code, byte[] message, Integer legth): Sendet eine Payload mit einer benutzerdefinierten Länge und einem Typcode.queue(FrameType code, byte[] message, String legth): Sendet eine Payload mit einer benutzerdefinierten Länge, die als Long-String definiert ist.queueWithComment(String message, String comment): Sendet eine Nachricht mit einem angehängten Kommentar.queueWithComment(String message, String replacement, String comment): Sendet eine Nachricht mit einem Kommentar, wobei replacement alle %s-Vorkommen in der Nachricht ersetzt.Die message repräsentiert den Inhalt des WebSocket-Nachrichten-Editors oben auf dem Bildschirm. Sie kann manuell bearbeitet oder innerhalb des Python-Skripts geändert werden.
handle_outgoing_message(websocket_message)Verwenden Sie diese Methode, um ausgehende Nachrichten bedingt zur Ergebnistabelle hinzuzufügen.
handle_incoming_message(websocket_message)Verwenden Sie diese Methode, um eingehende Nachrichten bedingt zur Ergebnistabelle hinzuzufügen.
websocket_messageMethoden:
getMessage(): Ruft die Nachricht als String ab.getDirection(): Ruft die Nachrichtenrichtung ab (burp.api.montoya.websocket.Direction).getLength(): Ruft die Nachrichtenlänge ab.getDateTime(): Ruft den Zeitstempel ab (java.time.LocalDateTime).getComment(): Ruft den mit der Nachricht verknüpften Kommentar ab.setComment(String comment): Setzt einen Kommentar für die Nachricht.getConnection(): Ruft die Verbindung ab, wodurch weitere Nachrichten in die Warteschlange gestellt werden können.getHash(): Ruft den Nachrichten-Hash ab. Eingehende und ausgehende Nachrichten mit demselben Hash werden als Request-Response-Paare markiert.setHash(long id): Setzt einen benutzerdefinierten Hash für die Nachricht.getTime(): Ruft die Antwortzeit in Millisekunden ab.isInteresting(): Bestimmt, ob sich die Nachrichtenattribute von anderen Nachrichten unterscheiden, basierend auf: