상세 컨텐츠

본문 제목

[HackCTF-Reversing#1] Welcome_REV - 50 points

Reversing/HackCTF

by bing_su 2021. 1. 1. 22:52

본문

반응형
SMALL

HackCTF reversing의 첫 번째 문제는 Welcome_REV이다.

IDA를 이용해 파일을 실행해 줬다.

 

먼저 main 함수에서 답이 맞는지 틀리는지를 검증해 주는 부분이 보인다. 이 분기문에서 check_password 함수가 call 되면서 우리가 입력한 값을 검증하고 있다. 

check_password 함수를 살펴보던 도중 이상한 값이 있는 것을 확인할 수 있었다.

저 문자열을 살펴 보면 "="로 끝나는 것을 봐서 Base64로 인코딩되어 있음을 알 수 있다.

아래는 Base64를 조금 더 간단하게 살펴보는 내용이다. 궁금한 사람들은 열어 보세요~_~

더보기

컴퓨터 분야에서 쓰이는 Base64는 8비트 이진 데이터(Ex: 실행 파일, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역 문자들로만 이루어진 일련의 문자열로 바꾸는 개념이다.

Base64 자체를 번역하면 64진법이라는 의미를 가지고 있다. 64가 2의 제곱수라 특별한 것도 있지만, 64는 화면에 나타나는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 2의 제곱수이다. (64의 다음 2의 제곱수 128은 ASCII 문자들의 수를 넘어선다.)

Base64로 인코딩된 문자열은 알파벳 대소문자, 숫자, 그리고 "+", "/" 기호 64개로 이루어지고, 이 때 "="는 끝을 알리는 문자이다. "="는 비트 수를 맞춰서 원본 바이너리 데이터에 없던 비트가 생기는 것을 방지한다.

 

이 문자열을 decode 해보면 아래와 같이 Flag 값을 얻을 수 있다.

Base64에 대한 개념만 알고 있다면 쉽게 풀리는 문제였다.

반응형
LIST

관련글 더보기

댓글 영역