(1) Bandit
(2) 이전 문제 요약
이전 문제는 base64로 인코딩된 문자를 해석하는것이었다.
Bandit 워게임 풀기 [level10 -> level11]
(1) Bandit (1) 이전 문제 요약 이전 문제는 바이너리 파일에서 '='이 여러 개 있는 줄의 문자열을 찾아내는 것이었다. strings 명령어로 쉽게 바이너리 파일과 문자열을 분리하였다. Bandit 워게임 풀기
suhyeokdevlog.tistory.com
(3) level11 -> level12
이번 문제는 data.txt라는 파일에 저장되어있으며, 모든 알파벳(소문자, 대문자)을 13번 회전하는
Rot13이라는 방식으로 암호화가 되어있다고 한다.
힌트에서 나온것 처럼 wikipedia에서 관련개념을 찾아보면
이러한 개념으로, 간단히 설명하면 그냥 13번째 알파벳으로 대체하는 간단한 원리이다.
예를들어 "ABCDE"는 13번 회전하여 "NOPQR"가 된다.
솔직히 암호화라는 개념이라고 하기에는 너무 단순하지만,
원문으로 나두는것 보단 보안측면에서는 충분히 좋을 것으로 생각 된다.
물론 직접 하나씩 13번 바꿔가며 찾아가도된다.
bandit에 명령어 힌트를 하나씩 찾아보면 "tr"이라는 명령어가 보인다.
일단 명령어 힌트를 보자
되게 많은 옵션들이 보이고 사용법도 되게 많아 보인다.
"tr [옵션] [1번세트] [2번세트]"의 방식으로 사용하라고 한다.
직접 GPT에게 물어보자
다음과 같은 답변이 나온다.
사실 이것도 ROT13방식처럼 많이 알려진 방식은 복호화 사이트에서 쉽게 암호를 해독할 수 있다.
이때 'a-zA-Z'는 대/소문자 알파벳을 의미하고,
'n-za-mN-ZA-M'은 알파벳 문자를 13자리 오른쪽으로 이동한 문자열으로 ROT13을 해독하는 방식이다.
bandit12의 비밀번호는 "JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv"이다.