해당 게시글은 bandit wargame에 대한 스포일러(방향성/힌트/정답)를 제공할 수 있습니다.

bandit level 3에서 비밀번호를 얻기 위해
inhere라는 디렉토리로 이동하는 방법을 학습해야 합니다.

ls로 현재 디렉토리에서 (.으로 시작하는 파일/디렉토리를 제외하고) 파일/디렉토리를 출력하면
inhere라는 디렉토리가 보입니다.
cd inhere #inhere이라는 이름을 가진 디렉토리로 현재 위치를 이동해라
cd 명령어로 디렉토리를 이동해줍니다.
cd
Change rhe working Directory의 약자. 현재 작업하고 있는 디렉토리를 이동한다.
- 입력 형태
cd [-L | -p] [DIRECTORY]
-설명
cd의 인자가 없고
홈인자가 있으면 홈으로 (step 1)
홈인자가 없으면 중지, 개발 환경에 따라 설정 가능 (step 2)
cd의 인자 입력받으면
/로 시작하는 절대경로가 주어지면 curpath에 할당 (step 3)
. ..으로 시작하는 절대경로가 주어지면 curpath에 할당 (step 4)
CDPATH 환경변수 경로명/(directory 인자)와 ./(directory 인자)를 탐색 및 존재 여부 확인하며 curpath 설정 (step 5)
이동할 위치는 일단 curpath에 할당 (step 6)
-P가 있으면 옵션 적용 (step 7, 10)
(정규화) /./(현재 디렉토리 표현), /../(상위 디렉토리 표현), 중복된 / 삭제 (step 8)
curpath 변수길이가 최대 경로길이를 초과하면 curpath는 절대경로에서 상대경로로 바뀜 (step 9)
chdir()와 동일, error 나면 message 출력 및 중지, $PWD 갱신 (step 10)
기존 $PWD는 old working directory에 저장되었다가, $PWD가 갱신된 이후 $OLDPWD에 저장.

cd로 현재 작업중인 디렉토리를 바꾸면
bandit3@bandit:~/inhere$
이렇게 현재 위치가 바뀌었다는 사실을 알 수 있습니다.
ls -a # .으로 시작하는 파일/디렉토리도 출력해라
ls만 입력하면
...Hiding-From-You는 .으로 시작하는 파일이름이라 출력되지 않습니다.
ls 명령어는 기본적으로 .으로 시작하는 항목을 출력하지 않기 때문입니다.
-a라는 옵션을 붙여서 모든 항목을 출력하거나
-A라는 옵션을 붙여서 .와 ..를 제외한 모든 항목을 출력하면
...Hiding-From-You라는 파일의 존재가 출력됩니다.

--color=auto 옵션 덕분에 흰색로 출력된 항목은 파일이라는 것을 알 수 있지만
file 명령어를 통해 한 번 더 확인해주면 ASCII text이므로 텍스트 파일입니다.
cat은 공백으로 구분된 개별 인자의 첫번째 문자로 오는 -만 옵션으로 해석하므로
...Hiding-From-You는 파일명 중간에 -가 있으므로 옵션으로 인식하지 않습니다.
cat 다음에 바로 파일 이름을 입력하면 목표한 비밀번호가 출력됩니다.
'Bandit' 카테고리의 다른 글
| Bandit Level 5 -> Level 6 (tmi : tr, echo / human-readable?) (0) | 2026.01.11 |
|---|---|
| Bandit Level 4 -> Level 5 (wildcard?) (0) | 2026.01.11 |
| Bandit Level 2 -> Level 3 (0) | 2026.01.10 |
| bandit level 1->2 (0) | 2026.01.10 |
| Bandit Level 0 -> Level 1 (command : ls, cat) (0) | 2026.01.09 |