메인 함수를 보면 간단하게 입력값을 받아서 지역변수에 존재하는 값과 비교를 한다.
근데 strcmp가 custom strcmp라 함수 내부로 들어가보면 아래와 같은 로직으로 이루어져 있고 비교시에 사용하는 key값이 필요하다.
key값은 아래 함수를 통해 구할 수 있다.
필요한건 다 구했으니 이제 key값을 brute forcing으로 구해주고 구한 값으로 custom strcmp함수 로직에 맞춰 xor 해주는 코드 짜서 돌려주면 플래그가 나온다.
a = [97,107,102,96,124,51,116,88,98,51,50,126,88,51,116,88,54,115,88,96,52,115,116,122]Find Key[*] = 7
key = 0
result = ""
for i in range(0,25):
if i*(i-14) == -49:
key = i
print "Find Key[*] = " + str(i)
break
for i in range(0,len(a)):
result += chr(a[i]^key)
print result
flag{4s_e45y_4s_1t_g3ts}
'CTF > Writeup' 카테고리의 다른 글
SECCON 2018 Quals GhostKingdom (0) | 2018.10.29 |
---|---|
BSides Delhi CTF 2018 st4t1c (0) | 2018.10.29 |
BSides Delhi CTF 2018 auth3ntication (0) | 2018.10.29 |
BSides Delhi CTF 2018 Old School SQL (0) | 2018.10.29 |
Hack.lu CTF 2018 BabyReverse (0) | 2018.10.25 |