MEGA sekurak hacking party już 13. czerwca – zdobądź bilety tutaj.

Burp Suite i obsługa protokołu WebSocket w narzędziu Repeater

18 lipca 2019, 09:33 | Narzędzia, W biegu | 0 komentarzy
Osoby, które chcą poznać narzędzie Burp Suite odsyłamy do naszego 15-minutowego filmu wprowadzającego w temat.

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.

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz