base64?

base64를 이용한 문제이다.

 

우선 주어진 파일 중 encode_data.txt 파일을 cyberchef에 from base64를 이용하여 돌려봤는데 평문이 나오지 않는 것을 확인했다.

그래서 우리가 일반적으로 사용하는 base64와는 알파벳 순서를 다르게 설정하여 encode 했다고 추측했다.

우선 data.txt를 일반적인 base64로 돌린 후 encode_data.txt와 비교해보았는데 받은 txt 파일과는 다른 것을 확인할 수 있다.

 

이를 보고 원래 encode문과 주어진 encode문을 비교해가며 알파벳 순서를 작성해서 이후 일반적인 base64로 decode하면 플래그가 나올 것이라 생각했다.

 

위 사진과 같이 비교해가며 문제에 사용된 base64 알파벳 순을 다시 작성한 후 문제에서 flag로 준 base64문을 원래 base64 알파벳 순을 이용하여 다시 바꿨다.

Y2NlMjAyMnt3ZWxjMG1lX2NjMl9nb29vb29kXzp1Y2sp Q==

그럼 변환하지 못한 '9'자리에 위치한 한글자 빼고는 모두 변환을 완료했고 이를 cyberchef로 돌려보면 아래와 같은 결과가 나온다.

 

빈 곳을 입력하지 않고 decode하자 플래그의 일부분이 나왔고 마지막 단어인 :uck을 luck이라고 추측하여 입력했더니 맞다고 떴다.