본문 바로가기

Bandit

Bandit Level 3 -> Level 4 (command : cd)

해당 게시글은 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 다음에 바로 파일 이름을 입력하면 목표한 비밀번호가 출력됩니다.