From 0f66017f6fbfe710ba7dbefde45124806449b5a5 Mon Sep 17 00:00:00 2001 From: Shellrent Srl <33652386+shellrent@users.noreply.github.com> Date: Tue, 14 Nov 2017 09:38:24 +0100 Subject: [PATCH] Update Readme.md with edits to the code --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/README.md b/README.md index 6755779..c7a7e1f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,54 @@ +## Edits + +Added support for Tokens in Cookies in `websocketproxy.py` on `get_target` + + +```python + def get_target(self, target_plugin, path): + """ + Parses the path, extracts a token, and looks up a target + for that token using the token plugin. Sets + target_host and target_port if successful + """ + # The files in targets contain the lines + # in the form of token: host:port + + token = '' + + # Extract the token parameter from cookie + if 'Cookie' in self.headers: + cookiestr = self.headers['Cookie'] + cookiestr.replace( 'Cookie: ', '', 1 ) + cookies = cookiestr.split('; ') + + for cookie in cookies: + cookie = cookie.split('=') + if 'token' in cookie[0]: + token = cookie[1] + break + + # Extract the token parameter from url + if token == '': + args = parse_qs(urlparse(path)[4]) # 4 is the query from url + + if not 'token' in args or not len(args['token']): + raise self.server.EClose("Token not present") + + token = args['token'][0].rstrip('\n') + + if token == '': + raise self.server.EClose( "Empty Token defined" ) + + # Search for the token + result_pair = target_plugin.lookup( token ) + + if result_pair is not None: + return result_pair + else: + raise self.server.EClose( "Token '%s' not found" % token ) +``` + + ## websockify: WebSockets support for any application/server websockify was formerly named wsproxy and was part of the