CodeEngn Advance 8

오래간만에 리버싱 해본다.
7번은 풀다가 짜증나서 던졌다.
문제 : Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가
힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고..
정답인증은 Name의 MD5 해쉬값(대문자)

1
일단 두글자라고 해서 “AA”를 입력했더니 글자수 부족 메시지가 뜬다. 문제에선 2글자라고 헀지만 나름 복잡하게 하기위해 몇글자 이하에 예외처리나 조건문을 걸어놓은 것 같다. 이부분을 해결하고 패스워드 비교부분 찾으면 끝나는 문제같다.
2

대놓고 문자열에 나온다.
please Enter MOre Chars… 문자열 바로 직전에서 S플래그 바꿔주면 글자수 부분은 넘어가진다.

3
적당히 브레이크포인트 걸어주고 구석구석 까진 아니고 입력한 AA의 아스키를 갖고 노는 듯한 함수내부에 들어가보니 AA의 아스키값을 갖고 이런저런 연산을 총 4번한다.
입력받은 name의 문자열을 갖고 key값을 만드는 부분으로 판단된다.

4
연산내용을 다 볼필요 없고 쭉쭉 진행하면 위와 같이 AA를 이용한 문자열이 생성된걸 확인 할 수 있다.
4번의 연산 결과값의 8비트중 앞부분 4비트만 따와서 만드는 문제라 그냥 코드로 저 연산 짜준다음에 아스키 1~a까지 전부 넣어주면 되겠지만 귀찮으니까 다른방법을 찾아봤다.
라고 했지만 그냥 코드 짜는게 가장 빠를것 같다.

5

첫번째 연산의 결과값은 F23ABBF0 이다.
위에서 본 AA의 첫 코드값과 앞4비트가 동일하다.
그럼 이 첫번째 연산만 아스키값으로 숫자 영대 영소 쭉 돌려서 정답 앞부분 값인
“5D88,+4비트” 뜨는 애를 찾으면된다..
아 그리고 두글자니까 name을 AB로 넣어서 ‘B’는 어느 연산에서 시작하는지도 찾아서 똑같이 코드짜면 된다.

6
AB로 넣어서 보니까 첫번째 연산에서 처음에는 A(41) 로 연산하고 그결과값에 두번째문자열B(42)를 넣어서 만드는걸 확인했다.
대신 00~zz까지 싹다 넣고 결과값의 앞4글자만 5D88과 비교연산 해줘서 출력해주면 끝!
이제 코드를 짜보자.

7
파이썬으로 대충 짜봤다.
0x30 (0) ~ 0x7A (z) 까지 모두대입한다.

8
5D88 이 -8:-4 인 부분 그냥 찾기로 검색해봤다 “ C6 “ 과 “ g3 “
두개의 결과가 나왔다.
스샷 찍고나서 봤는데 g3은 -9:-5다. C6만 딱맞음

8
글자수 제한하는 부분은 알아서 패치하고
C6을 넣었더니 정답이다

쉬운 문제지만 귀찮은 문제다.

박준영

박준영
아아 BOB하고싶다.. ㅇㅅㅇ;;;

2019년 CISA 합격 후기 및 공부 방법

CISA 합격 후기 및 공부방법

OpenVAS 사용 가이드/사용법 v.2018

Published on April 13, 2018

vsftpd 2.3.4 취약점 공격

Published on November 24, 2017