김승현

[OverTheWire] Bandit Level 11 → Level 12 본문

Linux/OverTheWire : Bandit

[OverTheWire] Bandit Level 11 → Level 12

kshind 2023. 2. 16. 16:50

문제

문제 원문

password는 data.txt에 있고 소문자(a-z), 대문자(A-Z)들은 13번 이동됐다? 이런 의미인 것 같다.

 

구글에 찾아보니까 rot13이라는 카이사르 암호의 일종으로

영어 알파펫을 13글자씩 밀어서 만드는 것이고 흔히 ROT-13으로 불린다고 한다.

 

그림으로 설명하면 A는 13칸 이동해서 N자리에, N은 12칸을 이동하면 Z의 자리까지 이동하는데 이때 제일 앞자리인 A로 이동해서 숫자를 이어서 센다.

O의 경우 Z의 자리까지 11칸 이동했기 때문에 A로 이동하면 12칸 이동, B로 이동하면 13칸을 이동했기 때문에 그 자리에 위치하게 된다.

그림 설명

 

사용할 명령어에서 tr이라는 것이 있는데 이건 특정 문자들을 새로운 문자들로 치환해주는 명령어이기 때문에

이 명령어를 이용해서 해결하면 될 것 같다.

 

tr : 지정한 문자를 변경, 삭제하는 명령어이다

tr [변경할 문자] [변경될 문자] : 변경할 문자를 변경될 문자로 변환합니다.
                                                    ex) tr 'a-z' 'A-Z' : 소문자를 모두 대문자로 변환함

tr -d [제거할 문자] : 제거할 문자들을 제거합니다.
                                 ex) tr -d 'a-z' : 소문자들을 문자열에서 제거함 

 

풀이

ls를 해보면 문제에 적혀 있듯이 data.txt가 있고 읽어보면 rot13이 적용된 문자열이 나열된 것을 볼 수 있다.

우리는 rot13이 적용된 문자열을 tr을 이용해서 원래 문자열을 얻을 수 있다.

tr 사용 화면

a부터 z까지 들어오게 되면 n-z까지 그리고 이후는 a-m까지로 변환하고

A부터 Z까지 들어오게 되면 N-Z까지 그리고 이후부터는 A-M까지로 변환하는 명령어를 입력해주면 암호를 얻을 수 있다.

 


다음 문제

https://kshind.tistory.com/14

 

[OverTheWire] Bandit Level 12 → Level 13

문제 data.txt에 다음 단계로 가는 password가 있는데 반복적으로 압축된 파일의 hexdump라고 한다. 이 단계에서 mkdir을 이용해서 /tmp 아래에 디렉토리를 만드는 게 작업하는데 좋다고 합니다. 디렉터리

kshind.tistory.com