본문 바로가기

System/OverTheWire Bandit

[OverTheWire Bandit] Level 2 → 3 문제 풀이]

728x90
반응형

Level 2 → 3 풀이 드가자

문제를 보면 홈디렉토리에 있는 'spaces in this filename'이라는 파일에 다음 레벨로 갈 수 있는 패스워드가 있다는 것을 알 수 있다.
근데 명령어는 공백을 기준으로 명령어, 옵션, 인자 등을 구분하기 때문에 파일 이름을 그대로 입력할 경우 정상적으로 읽히지 않는다.

이문제의 핵심은 공백이 포함된 파일이름을 하나의 문자열로 사용할 수 있도록 하는것에 있다.
방법은 크게 2가지가 있다.

  1. 따옴표를 이용하여 문자열임을 표현한다.
  2. 역슬래쉬를 이용하여 공백을 구분자가 아닌 일반 문자로 처리한다.

우선 ls를 통해 파일을 확인해보면 파일이름에 공백이 포함되어 있음을 확인할 수 있다.

첫번째 방법은 따옴표를 이용해서 파일명을 감싸는 것이다.

따옴표로 깜싸진 문자열은 명령어의 구성요소로서 사용되지 않고, 문자열 취급되기 때문에 정상적으로 파일이 읽어진다.

두번째 방법은 공백앞에 역슬래쉬를 붙이는 것이다.

역슬래쉬는 역슬래쉬 뒤에있는 문자를 문자열화 시키기 때문에, 명령어의 구성요소들을 구분하는 구분자의 역할을 할 수 없게 되어
파일을 정상적으로 읽을 수 있게 된다.

끝!


 

728x90
반응형