[RCity] RCity4 Write up
개요
Redraccoon에서 운영하는 RCity라는 워게임에 RCity4에 대한 Write up을 작성했습니다.
해당 공격 기법들을 허가되지 않은 실제 운영 서버에서 시도하는 것은 정보통신망법에 어긋나는 행위입니다.
개념정리
find
명령어는 파일이나 디렉토리를 찾는 검색 명령어이다. 기본 사용법은 다음과같다. find [경로] [옵션] [표현식]
. find 명령어에서 사용할 수 있는 옵션은 다음 표와같다.
옵션 | 설명 |
---|---|
-c | 일치하는 행의 수 출력 |
-i | 대소문자 구별하지 않음 |
-v | 일치하지 않는 행만 출력 |
-n | 해당 문자열이 포함된 행의 번호를 함께 출력 |
-l | 패턴이 포함된 파일의 이름 출력 |
-H | 단어와 일치하는 행만 출력 |
-W | 단어와 일치하는 행만 출력 |
-x | 라인과 일치하는 행만 출력 |
-r | 하위 디렉토리를 포함한 모든 파일에서 검색 |
-m | 최대로 표시될 수 있는 결과 제한 |
-E | 찾을 패턴을 정규표현식으로 검색 |
-F | 찾을 패턴을 문자열로 검색 |
문제분석
1
2
3
4
5
6
7
8
rcity4 유저의 홈 디렉토리 안에 플래그 파일이 있지만, 너무 길고 필요없는 문자열이 많습니다.
여기서 플래그는 "flag is here" 이라는 문자열 근처에 있다고 합니다.
당신은 rcity4 유저로 발전하였습니다.
하지만 다음 플래그를 얻기 위해서는 어려움이 있습니다.
rcity4 유저의 홈 디렉토리 안에 플래그 파일이 있습니다. 그러나 파일 안에는 너무 길고 필요없는 문자열들이 뒤섞여 있습니다.
플래그는 "flag is here"라는 문자열 근처에 있다고 하니 "flag is here"라는 문구와 연관된 힌트를 찾아내시면 됩니다.
문제를 보면 유저 홈디렉토리안에 flag파일이 존재하는데 안에는 필요없는 문자열들이 만히 뒤섞여있고, “flag is here”라는 문자열 근처에 flag가 있다고 한다. 따라서 홈디렉토리에 flag파일에서 grep명령어를 통해 “flag is here” 주위 글을 출력시면 될것이다.
현재 디렉토리를 확인해보니 flag.txt파일이 존재하는 것을 알 수 있고, 파일의 크기가 145K로 조금 큰 텍스트파일이라는 것을 알 수 있다.
flag.txt파일을 more로 열어보니 정말 필요없는 문자열이 많이 나열되어있는 것을 확인할 수 있다.
우선 grep "flag is here" flag.txt
명령어를 통해 확인해봤는데 아무것도 출력이 안됬다. 여기서 2가지를 예측할 수 있다. flag is here
이라는 문자열이 대소문자가 포함해 이루어져있거나, 최악의경우 leet라고 불리는 A를 4로 표시하거나, E를 3으로 표시하는 등의 인코딩방식을 이용해 이루어져있다고 생각했다. 우선 전자부터 증명을 해봤다. grep -i flag is here" flag.txt
운이좋게도 flag is here
이라는 문자열은 대소문자로 이루어져있는 상태로 존재했다. flag is here
뒤에 지금까지 봐왔던 flag와 비슷한 형식의 문자열이 보인다.