Jaeseo's Information Security Story

Codeengn Basic RCE 13번 문제 본문

Write UP/Codeengn - basic

Codeengn Basic RCE 13번 문제

Jaeseokim 2019. 11. 30. 21:55

13.exe - 정답은 무엇인가

프로그램 PE 분석을 해본다.

PE 분석을 통해 .NET assemblies로 되어 있어 일반적인 디버거로는 확인이 불가능 한 것을 볼 수가 있다.

그래서 JetBrain에서 제공하는 dotPeek를 통해 분석을 진행한다.

일단 분석을 하기 전 프로그램의 목표를 알아본다.

비번을 입력하고 입력 값이 올바른 지 체크하는 프로그램이다. 이제 dotPeek를 통해 열어서 확인한다.

 

그 결과 위와 같이 분석이 되는 것을 확인할 수 있다.

이때 RijndaeSimple, RijndaeSimpleTest라는 두개의 Class를 발견하게 되는데 이 두개의 클래스를 들어가 분석을 해본다.

RijndaeSimple먼저 들어가 분석을 해본다.

두가지의 함수가 발견이 되는데 Decrypt함수를 통해 복호화를 하고 Encrypt를 통해 암호화한다는 것을 알 수가 있다.

이제 RijndaeSimpleTest Class를 분석해본다.

여기에 보면 Main이 있고 암호에 필요한 인자를 String에 저장하고 인자들을 가지고 복호화 하여 str에 저장하였다는 것을 볼 수가 있다. 또한 while문을 통해 입력한 값을 str과 비교하여 체크를 하는 모습을 볼 수 있다.

RijndaeSimple에 있는 Decrpyt 함수와 RijndaeSimpleTest에 있는 인자 값을 가지고 C# 코딩을 하여 키값을 알아 낸다.

그결과 Leteminman 라는 평문이 나오는데 이것을 프로그램에 넣어 직접 테스트를 해본다.

정답: Leteminman

'Write UP > Codeengn - basic' 카테고리의 다른 글

Codeengn Basic RCE 15번 문제  (0) 2019.12.01
Codeengn Basic RCE 14번 문제  (0) 2019.12.01
Codeengn Basic RCE 12번 문제  (0) 2019.11.30
Codeengn Basic RCE 11번 문제  (0) 2019.11.30
Codeengn Basic RCE 10번 문제  (0) 2019.11.30
Comments