1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
REQUIRE_MODULE LUA
INCLUDE $TOP/test/config.htb
BLOCK:LUA WebsocketAccept websocketKey : result
return crypto.base64.encode(crypto.evp.digest("sha1", websocketKey.."258EAFA5-E914-47DA-95CA-C5AB0DC85B11", true))
END
CLIENT
_REQ $YOUR_HOST $YOUR_PORT
__GET / HTTP/1.1
__Host: $YOUR_HOST:$YOUR_PORT
__Upgrade: websocket
__Connection: Upgrade
__Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
__Origin: http://$YOUR_HOST:$YOUR_PORT
__Sec-WebSocket-Protocol: chat, superchat
__Sec-WebSocket-Version: 13
__
_EXPECT headers "Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK\+xOo="
_WAIT
_WS:RECV OP
_EXPECT VAR(OP) "PING"
_WS:SEND PONG AUTO ""
_EXPECT . "blabla"
_WS:RECV OP
_DEBUG $OP
_EXPECT . "blu"
_WS:RECV
_EXPECT . "bli blo"
_WS:RECV OP LEN
_CLOSE
END
SERVER $YOUR_PORT
_RES
_MATCH headers "Sec-WebSocket-Key: (.*)" WebsocketKey
_WAIT
__HTTP/1.1 101 Switching Protocols
__Upgrade: websocket
__Connection: Upgrade
#__Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
__Sec-WebSocket-Accept: $WebsocketAccept($WebsocketKey)
__Sec-WebSocket-Protocol: chat
__
_FLUSH
_WS:SEND PING AUTO ""
_WS:RECV OP
_EXPECT VAR(OP) "PONG"
_WS:SEND TEXT AUTO blabla 0x12345678
_WS:SEND TEXT AUTO blubla
_WS:SEND TEXT AUTO "bli blo"
_CLOSE
END
|