Basic RCE L17

HelloMG
|2020. 4. 1. 17:25

Basic RCE L17 문제

오늘의 문제는 Key값이 주어지고 Name을 맞추라고 하는군요 ㅎㅎㅎㅎ

힌트는 Name은 1자리이고 알파벳또는 숫자라고 합니다 :D

 

EP

EP 입니다 ㅎㅎㅎ

별다른거 없어보이니 바로 문자열 검색하였습니다 :D

분기점

분기점을 찾을 수 있었습니다!

그리고 프로그램을 실행해 보겠습니다 :D

프로그램 실행

일단 1자리이고 알파벳 또는 숫자라고 했으니

임의의 문자 a를 넣어주겠습니다 ㅎㅎㅎ!

Please Enter More Chars...

입력을하니.. 문자를 더 입력하라고 하네요..?

정답은 한자리라면서...=_=...

그래서 저 문자열을 찾아가 보았습니다 :D

글자 수 제한

글자 수를 체크하는 곳이 보입니다!

글자 수 확인

브레이크를 걸고 실행해서 보니 EAX에 1이 담깁니다!

글자수가 들어가는 것 같아보이는군요..!

그래서 문제가 오류인가 생각을 해봤는데.. 이것도 문제이겠거니 해서 변경해주었습니다!

CMP EAX,1

3을 1로 바꾸어 1글자여도 동작될 수 있도록 해주었습니다!

 

그리고 문자를 통해서 암호화가 되기 때문에 먼저 암호화가 어디서 이루어지는 찾아야합니다 :D

CALL 45B850

45BB9B 주소의 함수을 지나니 EAX에 어떤 키가 담기는 것을 확인했습니다 ㅎㅎㅎ

 

그래서 들어가서 분석을 해보았습니다!

KEY 생성

들어가서 보시다보면 이 위와같은 구조가 4개가 보였습니다!

그리고 이 루틴의 첫 시작이 제가 입력한 e인 것을 보아 KEY 생성하는 구간이구나 생각했습니다 ㅎㅎㅎ

'-'를 기준으로 총 5개가 있는데 위의 루틴은 첫번째 구간이니 'BEDA'를 만들어내는 녀석을 찾으면 될 것 같습니다 :D

루틴 설명

위의 사진과 같이 루틴의 수식을 다 적어 놓은 후..

python

파이썬을 이용해서 간단히 코딩해 보았습니다 :D

 

그리고 실행!!

F

beda가 포함된 녀석을 찾았습니다 :D

바로 "F"군요!!

맞는지 확인해 봐야겠죠 ㅎㅎㅎ?

Well done!

"Well done!"창이 뜨는군요 ㅎㅎㅎㅎ!

정답은 "F"이네용!

이제 MD5로 해쉬화해서 인증하면됩니다!

 

이만 문제풀이를 마치겠습니다 :D

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L19  (0) 2020.04.07
Basic RCE L18  (0) 2020.04.02
Basic RCE L16  (0) 2020.03.31
Basic RCE L15  (0) 2020.03.30
Basic RCE L14  (0) 2020.03.28