
Extension Burp Suite pour le fuzzing de messages WebSocket avec du code Python personnalisé, prenant en charge plusieurs moteurs, le routage par middleware HTTP et l'analyse des réponses.
Une extension pour le fuzzing de messages WebSocket à l'aide de code Python personnalisé.
Remarque : cela établira une nouvelle connexion WebSocket pour l'envoi des messages.
queue_websockets(base_websocket, message)L'objet websocket_connection fournit les méthodes suivantes :
create(base_websocket) crée une connexion WebSocket à l'aide de Burp Suite.create(base_websocket, engine) initialise une connexion à l'aide de l'un des moteurs pris en charge : BURP, TURBO ou THREADED.create(base_websocket, engine, config) initialise une connexion avec des paramètres manuels à l'aide des moteurs : TURBO et THREADED.config() crée la configuration par défaut utilisée par les moteurs TURBO et THREADEDconfig(connectionTimeout, sendingInterval, retries, number_of_threads, hello_message, send_ping_messages, use_chunks)connectionTimeout - délai d'expiration de la connexion (Integer)sendingInterval - délai entre les trames WebSocket en millisecondes (Integer)retries - nombre de tentatives de reconnexion si la connexion se ferme (Integer)number_of_threads - nombre de threads utilisés par le moteur THREADED (Integer)hello_message - message WebSocket initial envoyé lors de la connexion (String)send_ping_messages - indique si le moteur doit envoyer des messages ping (boolean)use_chunks - indique si le moteur doit envoyer des requêtes chunked (boolean)Une fois une connexion WebSocket établie, les messages peuvent être mis en file d'attente pour l'envoi.
Utilisez la méthode queue() sur cet objet.
queue(String message) : Envoie le messagequeue(String message, String replacement) : Envoie le message. replacement remplacera toutes les instances de %s dans votre messagequeue(FrameType code, byte[] message) : Envoie une charge utile avec un code de type spécifié :queue(FrameType code, byte[] message, Integer legth) : Envoie une charge utile avec une longueur et un code de type personnalisés.queue(FrameType code, byte[] message, String legth) : Envoie une charge utile avec une longueur personnalisée définie comme une chaîne Long.queueWithComment(String message, String comment) : Envoie un message avec un commentaire associé.queueWithComment(String message, String replacement, String comment) : Envoie un message avec un commentaire, avec replacement remplaçant toutes les instances de %s dans le message.Le message représente le contenu de l'éditeur de messages WebSocket en haut de l'écran. Il peut être modifié manuellement ou modifié dans le script Python.
handle_outgoing_message(websocket_message)Utilisez cette méthode pour ajouter conditionnellement les messages sortants au tableau des résultats.
handle_incoming_message(websocket_message)Utilisez cette méthode pour ajouter conditionnellement les messages entrants au tableau des résultats.
websocket_messageMéthodes :
getMessage() : Récupère le message sous forme de String.getDirection() : Récupère la direction du message (burp.api.montoya.websocket.Direction).getLength() : Récupère la longueur du message.getDateTime() : Récupère l'horodatage (java.time.LocalDateTime).getComment() : Récupère le commentaire associé au message.setComment(String comment) : Définit un commentaire sur le message.getConnection() : Récupère la connexion, permettant de mettre en file d'attente des messages supplémentaires.getHash() : Récupère le hash du message. Les messages entrants et sortants ayant le même hash sont marqués comme des paires requête-réponse.setHash(long id) : Définit un hash personnalisé pour le message.getTime() : Récupère le temps de réponse en millisecondes.isInteresting() : Détermine si les attributs du message diffèrent des autres messages en fonction de :