해킹 동아리 I.Sly()/방학 스터디 활동
[bandit] level 11 -> level 12
gom1n
2021. 2. 15. 07:11
해설)
다음 레벨의 패스워드는 data.txt 안에 저장되어있으며, 그 파일은 소문자와 대문자가 13씩 이동되어있다.
예전에 배웠던 암호화와 비슷한 개념인 것 같다.
왜인지 시작부분이 The password is 인 것 같은... 느낌^^,,,,
문자를 암호화하고 복호화하는 코딩을 짜 본 적은 있지만 리눅스에서는 처음 써본다. 아는 개념 나와서 설레는 거 맞음.
여기서 주목할 점은 조건에서 문자들이 13개씩 이동되어있다는 점이다.
영문자는 총 26개로, 13개가 두번 돌아가면 원위치되는 특성이 있다.
이렇게 키 값을 +13 해주는 암호는 ROT13이라고, 특별히 이름까지 지어주었다.
tr 명령어는 지정한 문자열을 바꾸어주는 역할을 한다.
기본 사용법은 이러하다.
$ tr [대상 문자] [바꿀 문자]
여기서 우리는 조건에 따라, A~Z와 a~z를 각각 N~Z 또는 A~M, 그리고 n~z 또는 a~m 로 바꾸어 줄 것이다.
$ tr 'A-Za-z' 'N-ZA-Mn-za-m'
예상대로 패스워드가 나온다. 어려웠다!