Post

[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” 주위 글을 출력시면 될것이다.

image

현재 디렉토리를 확인해보니 flag.txt파일이 존재하는 것을 알 수 있고, 파일의 크기가 145K로 조금 큰 텍스트파일이라는 것을 알 수 있다.

image

flag.txt파일을 more로 열어보니 정말 필요없는 문자열이 많이 나열되어있는 것을 확인할 수 있다.

image

우선 grep "flag is here" flag.txt명령어를 통해 확인해봤는데 아무것도 출력이 안됬다. 여기서 2가지를 예측할 수 있다. flag is here이라는 문자열이 대소문자가 포함해 이루어져있거나, 최악의경우 leet라고 불리는 A를 4로 표시하거나, E를 3으로 표시하는 등의 인코딩방식을 이용해 이루어져있다고 생각했다. 우선 전자부터 증명을 해봤다. grep -i flag is here" flag.txt

image

운이좋게도 flag is here이라는 문자열은 대소문자로 이루어져있는 상태로 존재했다. flag is here뒤에 지금까지 봐왔던 flag와 비슷한 형식의 문자열이 보인다.

This post is licensed under CC BY 4.0 by the author.