본문 바로가기

OverTheWire : Bandit Level 9 -> Level 10

@rn1p4st2023. 1. 21. 01:20
반응형

https://overthewire.org/wargames/bandit/bandit10.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. Level Goal The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters. Commands you may need to solve this level gre

overthewire.org

Level Goal

The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several '=' characters.

 

풀이

data.txt 파일에서 등호'=' 표시 앞에 읽을 수 있는 문장 몇개가 있고, 그중에 FLAG 비밀번호가 존재한다고 한다. 이게 뭔소린지 몰라서 좀 애먹었는데. 어렵게 생각하면 안된다.

data.txt 내부

data.txt를 열어보니 엄청 깨진 파일이다. 그래서 파일 형식을 보았더니 ASCII 파일이 아니다. 이중에서 사람이 읽을 수 있는 문장을 빼와야 한다. strings 명령어를 사용하면 된다.

엄청 많은 문자들이 나온다. 문제에서 '='등호 주변에 있다고 했으니, grep 명령을 활용하여 찾는다.

여기서 알게된 지식 : strings 커맨드는 문자들(ASCII Text)를 따로 추출해준다.

strings으로 찾은 문장들 중에서 grep으로 등호가 포함된 문장들만 추출하면 아래에 FLAG가 노출된 것을 볼 수 있다.

여기서 알게된 지식 : grep 명령어로 옵션 없이 바이너리 파일을 읽을 수 없다. grep 명령어로 바이너리 파일 내부를 검색하려면 -a 옵션을 사용하면 된다.
더보기

G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s


시행착오 과정

처음에 깨진 바이너리 파일이길래 base64로 인코딩을 하여 flag를 추출하는 줄 알았다. base64로 인코딩하면 사람이 읽을 수 있는 아스키 문자들이 나오기때문이다.

base64 data.txt를 하면 위와 같이 실행 결과가 나온다. 여기서 grep '='을 하면 딱 한 문장이 추출된다.

난  당연히 이게 FLAG인줄 알고 좀 오래 해맸다 ^^..

반응형
rn1p4st
@rn1p4st :: 푸들푸들

RECORD STUDY

목차