OverTheWire: Bandit - Level 2 → Level 3

full_accel·2020년 12월 13일
0

Over The Wire: Bandit

목록 보기
5/9
post-thumbnail

Bandit Level 2 → Level 3 - 문제 원문


https://overthewire.org/wargames/bandit/bandit3.html

Level Goal
The password for the next level is stored in a file called spaces in this filename located in the home directory

Commands you may need to solve this level
ls, cd, cat, file, du, find

Helpful Reading Material
Google Search for “spaces in filename”

해석


  • 패스워드는 spaces in this filename에 있다.
  • space in this filename은 홈 디렉토리에 있다.

공략


이번 단계도 어렵지 않다.

상황 파악

bandit2@bandit:~$ ls						[1]
spaces in this filename						[2]
bandit2@bandit:~$ cat spaces in this filename			[3]
cat: spaces: No such file or directory
cat: in: No such file or directory			
cat: this: No such file or directory
cat: filename: No such file or directory
  • [1] 시작해보니 역시 홈 디렉토리(~)이다. 이동할 필요가 없다.
  • [2] ls로 찍어보니 정직하고 황당하게도 진짜 spaces in this filename 이라는 녀석이 있다.
  • [3] cat spaces in this filename 을 해보니 리눅스가 그게 뭔소리냐고 한다.

해결 방법 1 - 이스케이프 문자

  • 리눅스에게 공백을 "문자"로 인식시키기로 한다.
  • 리눅스는 일반적인 경우에 공백을 문자로 인식하지 않는다.
  • cat ./file 의 경우 cat 명령어의 인자로 ./file을 받으라는 의미인데 이때 리눅스는 명령어와 인자를 구분하라는 의미로 공백을 해석했다.
  • 백슬래쉬(보통 키보드 배열상 enter 키 위에 의 모양을 가진 키)를 특수문자 앞에 써주면 리눅스는 특수문자를 그냥 "문자"로 해석한다.
  • 이와 같은 역할을 하는 특수문자를 "이스케이프 문자"라고 한다.
bandit2@bandit:~$ cat spaces\ in\ this\ filename		[1]
U??????????????????????????????
  • [1] 이스케이프 문자로 공백을 표현하여 공백을 포함한 파일의 내용을 확인할 수 있다.(키를 찾았다.)

해결 방법 2 - 자동 완성

  • 리눅스의 자동완성을 이용하기로 한다.
  • 현재 디렉토리에서 cat spa 정도만 입력하고 tab 키를 입력하면 문장이 자동완성된다.
  • 이때 공백에 대한 이스케이프 문자도 자동으로 입력된다.
    • 이스케이프 문자를 사용하면 리눅스에서 공백을 문자로 인식시킬 수 있다.
bandit2@bandit:~$ cat spaces\ in\ this\ filename		[1]
U??????????????????????????????
  • [1] cat spa [tab 키 입력하면]
    • cat spaces\ in\ this\ filename 까지 자동완성된다. 개꿀!

해결 방법 3 - 따옴표

bandit2@bandit:~$ cat "spaces in this filename"			[1]
U??????????????????????????????
  • [1] 공백을 포함한 문자열을 따옴표(")를 감싸서 리눅스에 문자열로 인식시킬 수 있다.

다음 단계로 넘어가자
ssh -p 2220 bandit3@bandit.labs.overthewire.org

TMI


이스케이프 부호

영문 출판물에서 가장 많이 사용되는 2기 점차체계에서 가능한 적은 기호로 영문 대소문자를 모두 표현하기 위해 이스케이프라 부호라는 개념을 사용한다. 즉 a에 해당하는 점자를 그냥 쓰면 소문자이지만 이스케이프 문자를 의미하는 점자가 앞에 오고 그 뒤에 소문자 a를 의미하는 점자가 오면 이를 대문자 A라고 규칙을 정한 것이다.

시프트 부호

2기 점자체계에서는 숫자를 표현하기 위해 a를 1에 대응시키고 b를 2에 대응시키고... j를 0에 대응시킨다. 점자 중에서 자신 뒤로 오는 점자는 영문이 아니라 숫자라고 인식시키는 부호가 있고, 숫자로 인식하는 구간이 끝났음을 알리는 점자가 있다. 이러한 부호들을 일반적으로 선행 부호 또는 시프트 부호라고 한다.

TMI 참조


CODE by 찰스 팻졸드, Chapter3 점자와 이진부호

profile
스스로 배운 것이 오래 간다.

0개의 댓글