Client / Exploit Writing

Sample Websocket Client (Python)

import websocket # pip3 install websocket-client
import ssl 
import json
import argparse
import _thread as thread

session_id = ""

def toJson(task,data):
    req = {
        "test": task,
    }
    return json.dumps(req)

# executed when connection is established
def on_open(ws):
    def run():
        while True:
            cmd = input()
            ws.send(toJson("ws_endpoint", cmd)) # sending the data to websocket
    thread.start_new_thread(run, ())

# executed on response from server that we connect to
def on_message(ws, message):
    mes = json.loads(message)

    if "session_id" in mes.keys():
        session_id = mes["session_id"]

    print(mes)

# handles errors
def on_error(ws, error):
    print(error)

# ending the connection
def on_close(ws):
    print("[+] Connection Closed")


if __name__ == "__main__":
    parser = argparse.ArgumentParser()

    parser.add_argument('--url', '-u',
                        required=True,
                        dest='url',
                        help='Websocket URL')
    parser.add_argument('--verbose', '-v',
                        help='Print more data',
                        action='store_true')
    args = parser.parse_args()

    websocket.enableTrace(args.verbose)
    ws = websocket.WebSocketApp(args.url,
                              on_message = on_message,
                              on_error = on_error,
                              on_close = on_close,
                              on_open = on_open)
    ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})

Last updated