AnbyMata의 해킹 노트

[Bandit] Level 1 → Level 2 본문

OverTheWire/Bandit

[Bandit] Level 1 → Level 2

AnbyMata 2026. 1. 9. 22:00

OverTheWire - Bandit : Level 1 → Level 2. Write-up!

출처: https://overthewire.org/wargames/bandit/bandit2.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> Level Goal The password for the next level is stored in a file called - located in the home directory Commands you may need to solve this level ls , cd , cat

overthewire.org

시작을 위해 "ssh -p 2220 bandit1@bandit.labs.overthewire.org" ssh 로그인합니다!

( 비밀번호: Level 0 → Level 1 에서 얻은 비밀번호 )

 

[1]  문제 요약

Home 디렉토리의 "-" 라는 이름의 파일 안에 다음 레벨의 비밀번호가 저장되어 있습니다.

 


[2]  사용되는 명령어들

- ls : 현재 디렉토리 또는 지정한 경로의 파일과 폴더 목록 출력

- cd : 현재 작업 중인 디렉토리를 변경 (= 현재 위치에서 다른 디렉토리로 이동)

- cat : 파일의 내용을 화면에 출력

- file : 파일의 종류 및 타입 확인

- du : 디렉토리나 파일의 디스크 사용량 표시

- find : 지정한 경로에서 조건에 맞는 파일이나 디렉토리 검색

 

참고하면 좋은 블로그 글: https://anbymata.tistory.com/12

 

[Linux 기초] EP.9 - 파일 내용 확인하기 (cat, file, more)

지금까지 우리는 파일의 내용을 확인할 때 vi 명령어를 사용하여 vi 편집기 내부로 들어가서 확인해야 했습니다.그러나 이 방법은 단순히 내용 확인이 목적일때는 번거롭습니다. 그래서 오늘은 v

anbymata.tistory.com

 

 


[3]  문제 접근 과정

1)  'cat -' 명령어를 통해서 "-" 파일 내용 확인 시도

'cat -'

 = 아무일도 일어나지 않습니다.

[보충 설명]
사실은 아무것도 일어나지 않은 것이 아닌 stdlin 상태로 입력을 기다리고 있는 상태입니다.
그래서 문장을 입력한 다음, Enter 키를 누르면 내가 입력한 문장이 그대로 출력됩니다.

Ctrl + D 를 누르면, 이 상태에서 빠져나갈 수 있습니다.

 

 

2)  'cat -' 이 "-" 파일 내용을 출력하지 않는 이유

 - 리눅스에서 "-" 은 옵션 또는 stdlin (표준 입력)을 의미합니다.

 - 그래서 "-" 는 파일명(텍스트)로 해석되지 않습니다.

 - 결과적으로 cat 은 파일을 읽는 대신 표준 입력을 기다리는 상태로 동작합니다.

[보충 설명]
'cat -' 의 경우 cat 명령어에 파일명을 넣는 방식을 사용한 것입니다.
이때, 우리는 "-"가 텍스트로 인식되어 파일명으로 입력되기를 원한 것입니다.
하지만, 리눅스에서 "-"는 "-p", "-al" 같이 명령어의 옵션을 나타낼 때 주로 사용됩니다.
또한, "-"만 사용하게 되면 stdlin (표준 입력)을 의미하게 됩니다.

즉, "-"는 특수 기호로써의 역할이 텍스트보다 우선 해석되기 때문에, 명령어의 파일명으로는 적합하지 않습니다.

 

 

3)  cat 명령어에 파일을 전달하는 다른 방법 = 경로!

 - cat 명령어에는 파일명 대신 경로를 넣어서 사용할 수 있습니다.

 - 경로에는 상대 경로, 절대 경로가 있기에 두 방식을 사용할 수 있습니다.

 

상대 경로, 절대 경로를 잘 모른다면?: https://anbymata.tistory.com/9

 

[Linux 기초] EP.6 - 절대 경로? 상대 경로?

우리는 리눅스 명령어를 사용할 때 디렉토리 경로를 매우 자주 활용해왔습니다. 어렴풋이 느끼시겠지만, 경로는 리눅스에서 매우 중요한 개념입니다. 고로, 경로에 대해 조금 더 깊이 알아보겠

anbymata.tistory.com

 

 


[4]  문제 풀이 및 분석

1)  ls 명령어로 홈 디렉토리에 있는 파일 목록 확인

'ls'

 = "-" 이라는 파일이 존재함을 확인했습니다.

 

 

 

[4-1] 절대 경로를 활용한 풀이

2)  현재 위치한 홈 디렉토리절대 경로 확인

 - pwd 명령어를 사용합니다.

'pwd'

 = 홈 디렉토리절대 경로가 "/home/bandit1" 임을 알 수 있습니다.

 

 

3)  cat 명령어에서 '-' 파일을 절대 경로로 지정하여 내용 출력하기

 - "-" 파일의 절대 경로 = "/home/bandit1/-"

'cat /home/bandit1/-'

 = "-" 파일 안에 있던 비밀번호 확인!

 

 

 

[4-2] 상대 경로를 활용한 풀이

2)  cat 명령어에서 '-' 파일을대 경로로 지정하여 내용 출력하기

 - "-" 파일의대 경로 = "./-"

[보충 설명]
현재 우리가 위치한 곳은 홈 디렉토리입니다.
상대경로에서 "."은 현재 위치를 나타냅니다.
그렇기에, 홈 디렉토리 안에 있는 "-" 파일의 상대 경로는 "./-" 입니다.

'cat ./-'

 = "-" 파일 안에 있던 비밀번호득!

 

bandit 비밀번호는 반드시 따로 복사해서 저장해두기! (메모장 등으로)

 


'OverTheWire > Bandit' 카테고리의 다른 글

[Bandit] Level 4 → Level 5  (0) 2026.01.15
[Bandit] Level 3 → Level 4  (0) 2026.01.12
[Bandit] Level 2 → Level 3  (0) 2026.01.10
[Bandit] Level 0 → Level 1  (0) 2026.01.08
[Bandit] Level 0 - Bandit 로그인 및 플레이하는 방법  (0) 2025.10.28