https://overthewire.org/wargames/bandit/bandit5.html
Level Goal
The password for the next level is stored in the only human-readable file in the inhere directory. Tip: if your terminal is messed up, try the “reset” command.
Commands you may need to solve this level
ls, cd, cat, file, du, find
이번 레벨 역시 쉽다.
bandit4@bandit:~$ ls
inhere
bandit4@bandit:~$ cd inhere/ [1]
bandit4@bandit:~/inhere$ ls [2]
-file00 -file01 -file02 -file03 -file04 -file05 -file06 -file07 -file08 -file09
bandit4@bandit:~/inhere$ file ./-file01 [3]
./-file01: data
bandit4@bandit:~/inhere$ cat ./-file00 [4]
▒�/`2ғ▒%▒▒rL~5▒g▒▒ ▒▒▒▒▒bandit4@bandit:~/inhere$
ls
로 확인하니 뭐가 많다.file ./-file01
로 확인하니 data 파일이다. cat ./-file00
으로 찍어보니 data 파일은 인간이 읽을 수 없다. human-readable 이 이런 뜻이였다.bandit4@bandit:~/inhere$ file ./* [1]
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text [2]
./-file08: data
./-file09: data
bandit4@bandit:~/inhere$ cat ./-file07 [3]
k??????????????????????????????
file ./*
를 입력하여 현재 경로의 모든 파일을 의미하는 ./*
를 file을 인자로 넘겨 준다.cat
으로 열어보니 패스워드 같은 것이 보인다.다음 단계로 넘어가자
ssh -p 2220 bandit5@bandit.labs.overthewire.org
bandit4@bandit:~/inhere$ file ./* | grep "text" [1]
./-file07: ASCII text [2]
bandit4@bandit:~/inhere$
file ./* | grep "text"
file
명령어를 사용하면서 출력된 결과를 |
(파이프라인) 을 사용하여 grep
명령어에 전달하고grep
은 전달받은 내용에서 text라는 문자열을 검색하여 ./*
(asterisk, 별표)는 현재 경로의 모든 것을 의미한다.sudo rm -rf /*
라는 지옥에서 온 명령어가 있다.|
(파이프라인)은 입출력의 방향을 바꾸어 준다.ls | grep "mysql"
의 경우 ls
명령어로 출력한 현재 디렉토리의 내용을 grep
명령어의 입력으로 전달해 준다. grep
명령어는 전달받은 내용에서 "mysql"이라는 텍스트가 포함된 라인만 출력해준다.grep
(global regular expression print): 위에서 사용한 예와 같이 입력으로 들어온 텍스트에서 원하는 텍스트가 포함된 라인만 출력할 수 있다.
저는 그냥 하나하나씩 다 찍어봤는데 저런 방법이있었다니 나중에는 저런 방법으로 한번 해봐야겠어요!