Mega Sekurak Hacking Party w Krakowie! 26-27.10.2026 r.
Burp Suite i obsługa protokołu WebSocket w narzędziu Repeater
W najnowszej wersji Burp Suite 2.1.01 pojawiła się obsługa WebSocket w Burp Repeater.
Wykorzystajmy poniższą aplikację, aby zobaczyć nową funkcjonalność w akcji.
Część serwerowa (nodejs):
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(req, res){});
var ws_server = new WebSocketServer({
        httpServer: server
});
server.listen(1337, function(){});
ws_server.on('request', function(req) {
        var conn = req.accept(null, req.origin);
        conn.on('message', function(msg) {
                conn.send(msg.utf8Data);
        });
});
Uruchomienie serwera (zakładamy, że nodejs jest już zainstalowany):
npm install websocket # instalacja zależności nodejs ./server.js # kod serwera znajduje się w pliku server.js
Część kliencka:
<!DOCTYPE html>
<html>
<body>
<script>
var conn = new WebSocket('ws://192.168.56.105:1337'); // zmień na adres własnego serwera
conn.onmessage = function(msg) {
        document.write('<p>' + msg.data + '</p>');
};
setTimeout(function() {
        conn.send('Hello');
}, 1000);
</script>
</body>
</html>
Z poziomu Burp Proxy (Proxy -> WebSockets history) możemy zobaczyć komunikację pomiędzy przeglądarką i serwerem:

Do tej pory możliwości Burpa w zakresie testowania komunikacji odbywającej się za pośrednictwem WebSocket były bardzo ograniczone. Sprowadzały się do przechwycenia zapytania (Proxy -> Intercept), modyfikacji i przesłania komunikatu dalej. Każdy kto choć chwilę spędził przy testowaniu aplikacji webowych doskonale wie, jak nieefektywne jest to podejście.
W najnowszej wersji Burp komunikaty WebSocket możemy wysyłać bezpośrednio z poziomu Burp Repeater:
Zapytanie wysłane z poziomu Burp Repeater:
Co ciekawe, jeśli połączenie jest aktywne, możemy wysłać komunikaty do klienta:
Widok po stronie przeglądarki:
— Dariusz Tytko, hakuje w Securitum.





