| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 리눅스 기초
- TryHackMe
- linux
- cert
- 해커
- 블루팀
- http
- THM
- 사이버 보안
- Bandit
- 보안 관제
- 보안 스터디
- 해킹
- write-up
- Cyber Security
- 워게임
- Cross-Site Scripting
- 리눅스
- XSS
- IR
- Blue Team
- SoC
- 정보보호
- CTF
- 모의해킹
- Web
- OverTheWire
- 정보보안
- web hacking
- 해킹 스터디
- Today
- Total
AnbyMata의 해킹 노트
[Bandit] Level 2 → Level 3 본문
OverTheWire - Bandit : Level 2 → Level 3. Write-up!
출처: https://overthewire.org/wargames/bandit/bandit3.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 --spaces in this filename-- located in the home directory Commands you may need to solve
overthewire.org
시작을 위해 "ssh -p 2220 bandit2@bandit.labs.overthewire.org"로 ssh 로그인합니다!
( 비밀번호: Level 1 → Level 2 에서 얻은 비밀번호 )
[1] 문제 요약
Home 디렉토리의 "--spaces in this filename--" 이라는 이름의 파일 안에 다음 레벨의 비밀번호가 저장되어 있습니다.
[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 --spaces in this filename--' 명령어로 파일 내용 확인 시도

= "--spaces" 라는 옵션은 없는 옵션이라고 합니다.
2) "--spaces"가 옵션으로 인식된 이유
- 전 레벨에서 배웠듯 리눅스에서 "-"로 시작하면 옵션으로 해석됩니다.
- 마찬가지로 "--"로 시작해도 옵션으로 해석됩니다.
- 일반적으로 단일 문자 옵션은 "-"로 시작합니다.
- 단어 형태의 옵션은 "--" 로 시작합니다.
| [보충 설명] 리눅스에서 "-"와 "--" 모두 옵션을 의미합니다. "-"는 단일 문자, "--"는 단어 형태의 옵션에 사용된다는 것을 ls 명령어 예시로 들어보자면, 'ls -a' = 숨김 파일까지 모두 출력 'ls -h" = 파일 크기를 사람이 읽기 쉬운 단위로 출력 'ls --all' = 'ls -a' 처럼 숨김 파일까지 모두 출력 'ls --human-readable' = 'ls -h' 처럼 사람이 읽기 쉬운 단위로 출력 여기서, 'ls -al'의 경우 "al"이 하나의 단어가 아니라 '-a' 옵션과 '-l' 옵션을 결합해 동시에 사용한다는 뜻이기에 단일 옵션 표기인 "-"를 사용합니다. 'ls -al' = 'ls -a' + 'ls -l' = 숨김 파일을 포함한 모든 파일을 상세 정보 형식으로 출력 |
3) cat 명령어에 파일을 상대 경로로 지정하여 시도
- 옵션이라 안 된다면, Level 1에서 처럼 경로를 활용해보겠습니다.
- 상대 경로 = "./--spaces in this filename--"

= "./--spaces", "in", "this", "filename--" 이라는 총 4개의 파일 및 디렉토리 이름으로 각각 인식된 모습입니다.
- 이 4개의 파일 및 디렉토리는 홈 디렉토리에 실제로 존재하지 않습니다.
4) 총 4개의 파일 및 디렉토리로 분리되어 인식된 이유
- 리눅스에서의 공백 = 명령어의 인자 (argument)를 나누는 기준
- 즉, 공백을 기준으로 서로 다른 인자로 인식되어, 하나가 아닌 4개로 분리되어 인식된 것입니다.
| [보충 설명] 공백이 명령어의 인자를 나누는데, 파일/경로뿐만 아니라 명령어 자신과 옵션들도 인자(argument)입니다. 'ls -al /home' 이라는 명령어는 공백에 의해. "ls" = 명령어 이름 "-al" = 옵션 인자 = 옵션 a와 옵션 l "/home" = 일반 인자 = 경로 로 인식됩니다. 즉, 'cat ./--spaces in this filename--' 의 경우 하나의 명령어 이름과 4개의 일반 인자로 인식됐습니다. 하지만, 우리가 원하는 것은 "./--spaces in this filename--" 이라는 하나의 인자로 인식되는 것입니다. |
5) 따라서 공백을 인자 구분자가 아닌 하나의 인자로 처리해야 함
- 따옴표로 공백을 포함한 문자열을 묶으면 하나의 인자로 인식됩니다.
- 작은 따옴표 ( ' ' )와 큰 따옴표 ( " " ) 모두 사용 가능합니다.

= 성공적으로 "--spaces in this filename--"이 하나의 인자로 인식되었습니다.
- 하지만, 앞의 "--" 때문에 옵션으로 인식되어 완벽하진 않습니다.
- 공백을 인자를 구분하는 기준이 아닌 단순 텍스트로 인식시키는 방법도 존재합니다.
- 백슬래시 ( \ )를 사용하면 공백이 인자 구분자가 아닌 공백 문자 그대로 해석됩니다.

= 마찬가지로 공백이 일반 문자가 되면서 "--spaces in this filename--"이란 하나의 인자로 인식되었습니다.
- 역시나 옵션으로 인식되어 완벽하진 않습니다.
6) 옵션으로 인식되는 문제 해결하기
- 옵션으로 인식되는 문제만 이제 해결하면 됩니다.
[4] 문제 풀이 및 분석
1) ls 명령어로 홈 디렉토리에 있는 파일 목록 확인

= "--spaces in this filename--" 이라는 파일이 존재함을 확인했습니다.
2) 현재 위치한 홈 디렉토리의 절대 경로 확인
- pwd 명령어를 사용합니다.

= 홈 디렉토리의 절대 경로가 "/home/bandit2" 임을 알 수 있습니다.
[4-1] 따옴표로 파일명 묶기
3) cat 명령어에 따옴표와 절대 경로를 활용하여 파일 내용 출력하기
- 따옴표 = 하나의 인자로 묶어주는 역할
- 절대 경로 = "--"이 옵션으로 인식되는 문제 해결

= "--spaces in this filename--" 파일 안에 있던 비밀번호 획득!
번외) 절대 경로대신 상대 경로 활용하기

- 상대 경로도 가능하지만, 절대 경로가 좀 더 명확한 방법입니다.
[4-2] 백슬래시 ( \ )로 공백을 일반 문자로 만들기
3) cat 명령어에 백슬래시 ( \ )와 절대 경로를 활용하여 파일 내용 출력하기
- 백슬래시 ( \ ) = 공백을 인자 구분자가 아닌 일반 문자화 시킴
- 절대 경로 = "--"이 옵션으로 인식되는 문제 해결

= "--spaces in this filename--" 파일 안에 있던 비밀번호 획득!
번외) 절대 경로대신 상대 경로 활용하기

- 동일하게 상대 경로로도 가능합니다.
bandit 비밀번호는 반드시 따로 복사해서 저장해두기! (메모장 등으로)
[Bandit] Level 2 → Level 3. Clear.
[Bandit] Level 3 → Level 4. Continue...
https://anbymata.tistory.com/38
[Bandit] Level 3 → Level 4
OverTheWire - Bandit : Level 3 → Level 4. Write-up!출처: https://overthewire.org/wargames/bandit/bandit4.html Level Goal The password for the next level is stored in a hidden file in the inhere directory. Commands you may need to solve this level ls ,
anbymata.tistory.com
'OverTheWire > Bandit' 카테고리의 다른 글
| [Bandit] Level 4 → Level 5 (0) | 2026.01.15 |
|---|---|
| [Bandit] Level 3 → Level 4 (0) | 2026.01.12 |
| [Bandit] Level 1 → Level 2 (0) | 2026.01.09 |
| [Bandit] Level 0 → Level 1 (0) | 2026.01.08 |
| [Bandit] Level 0 - Bandit 로그인 및 플레이하는 방법 (0) | 2025.10.28 |