본문 바로가기

System/OverTheWire Bandit

[OverTheWire Bandit] Level 4 → 5 문제 풀이

728x90
반응형

Level 4 → 5 문제 풀이 드가자.

문제를 보면 inhere 디렉토리 하위에 사람이 읽을 수 있는 파일이 1개 있다고 한다.
이 파일에 다음레벨로 갈 수 있는 패스워드가 있다.

ls를 통해 inhere 디렉토리는 홈디렉토리 밑에 있음을 확인하였고,
inhere 디렉토리 하위에는 10개의 파일이 존재했다. 

물론 일일히 다 열어봐도 문제는 풀리겠지만, 문제의 취지에 맞지않기 때문에 명령어를 통해 풀어보도록 하겠다.

우선 inhere 디렉토리 안에 있는 파일들의 종류를 확인하기 위해 find와 file 명령어를 사용하였다.
find의 -exec 옵션을 이용하여 file 명령어를 실행시켰고, 그 결과 -file07만 ASCII문자로 된 텍스트 파일임을 확인할 수 있었다.

즉 -file07 파일만이 사람이 정상적으로 읽을 수 있는 파일이다.

cat을 통해 읽어주게 되면, 패스워드가 나타나게 된다.

하지만 여기서 마무리하기에는 아쉬워, 조금 더 고급 버전으로 한줄의 명령어로 답까지 찾아보았다.

순서는 아래와 같다.

  1. find 명령어의 -exec 옵션을 이용하여 inhere 디렉토리 내 모든 파일에 file 명령어를 수행
  2. pipe로 전달받은 1번 결과에서 text라는 문자가 있는 행을 grep한다.
  3. grep한 데이터를 콜론(:)을 기준으로 분리하여 첫번째 값만 출력한다.
  4. 3번에서 출력된 결과를 pipe를 통해 전달받은 뒤 xargs를 이용해 cat의 인자로 사용한다.

 

끝!


 

728x90
반응형