[OverTheWire:Bandit] Level 17 ~ Level 18

2023. 7. 16. 19:27War Game/OverTheWire

문제

 

 

다음 단계로 넘어가는 암호는 홈 디렉토리 내 passwords.new 파일에 저장되어 있으며 또 다른 파일 하나인 passwords.old와 passwords.new 사이에 변경된 유일한 줄이 암호라고 한다.

 

Keyword

 

ls, diff, cat

 

풀이

 

ls
cat passwords.new
cat passwords.old

 

ls 명령어를 사용해서 홈 디렉토리 내에 두 파일이 있는 것을 확인했으며 각 파일을 cat 명령어를 사용해서 내용을 출력해 봤더니 암호같이 보인 라인이 한가득이었다. 이걸 하나하나 다 비교해서 찾아내는 건 곤란하고 두 파일의 내용을 비교해주는 명령어인 diff를 사용해 보자.

 

diff -c passwords.new passwords.old

 

diff 명령어의 -c 옵션은 두 파일 간 차이점을 출력해주는 기능을 가지고 있다. 이를 사용해서 두 파일간 차이가 있는 줄을 출력했더니 차이점이 있는 라인 왼쪽에 '!' 기호가 있는 것을 확인할 수 있었다. '!' 기호 옆에 있는 라인이 두 파일 간의 차이가 있는 부분이며 passwords.new파일에 암호가 저장되어 있다.

 

cat passwords.new | grep "암호"

 

diff 명령어 사용 시 먼저 적은 파일의 내용이 먼저 출력된다. 그러므로 먼저 출력된 '!'기호 옆 라인을 passwords.new파일에서 cat 명령어를 사용해 찾아보면 저장되어 있는 것을 확인할 수 있다.