문제 자체는 어렵지 않은데
악랄했던 MISC 문제..
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
문제에서 주어지는 파일은 OH-MY-R41N.zip 파일이다.
ZIP 파일의 압축을 풀려고 보니
비밀번호가 걸려있다.
ZIP 파일 비밀번호를 crack 하는데는 John the Ripper 라는 도구를 이용했다.
여러가지 비밀번호를 crack 해주는 기능을 가지고 있다.
zip2john <파일명> > hash 명령어로
hash 파일을 생성해준 다음
john --wordlist=<rockyou.txt 파일 경로> hash 명령어로 비밀번호를 crack 해주면 된다.
해당 파일의 비밀번호는 management 이었다.
비밀번호를 크랙하는데 사용한 rockyou.txt 파일을 구글에 검색하면 쉽게 구할 수 있다.
압축을 풀어보니 ZIP 파일 안에는 data.txt 파일이 들어있었다.
data.txt 파일은 이렇게 생겼다.
데이터가 518,701 줄이나 있는데 맨 마지막이 === 으로 끝나는걸 볼 수 있다.
마지막에 = 문자가 오고, 전체적으로 데이터가
대문자 A-Z, 숫자 2-7 로 이루어져 있는데,
이런 데이터는 높은 확률로 Base32 로 인코딩된 것이다.
처음엔 CyberChef(https://gchq.github.io/CyberChef)에서 디코딩을 시도했다.
한번 Base32 로 디코딩 해도 유사한 데이터가 나오길래
여러번 중첩해서 인코딩 되었을 거라고 판단했다.
그런데 몇번 Base32 디코딩을 하다보니
CyberChef 에서 부하를 너무 많이 먹었는지
Output 에 아무것도 출력이 되지 않았다.
리눅스 환경에서 디코딩을 해도 된다.
cat data.txt 로 내용을 출력해준 뒤,
파이프라인으로 base32 -d 명령을 실행시키면 된다.
여러번 중첩시키려면 | base32 -d 를 계속 써주면 된다.
정말 악랄하게도
base32 로 24번 디코딩을 하고 나서야
알파벳이 아닌 다른 문자열이 보였다.
알수없는 기호들이 나열되어있는것이 보이는데
사실 이건 프로그래밍 언어다.
이렇게 + [ - > < . 기호로 이루어진 언어는 BrainFxxx 이라고 한다.
(x로 적었으나 모두가 생각하는 그 단어가 맞다.)
위키피디아를 찾아보면 실제 있는 언어인걸 알 수 있다.
당연히 실제로는 잘 사용되지 않는 언어이고, 이름처럼 그냥 장난처럼 만들어진 언어이다.
해당 언어는 온라인 컴파일러가 존재한다.
(https://www.tutorialspoint.com/execute_brainfk_online.php)
온라인 컴파일러에
내용을 복붙한 뒤 Execute 버튼을 누르면
코드가 실행되어서 오른쪽에 플래그가 출력된다.
'CTF > MISC' 카테고리의 다른 글
[boot2root] Vulnerable Adventure - MISC / Python (70) | 2023.02.08 |
---|---|
[pbctf] Not-stego - MISC (78) | 2023.02.05 |
[JISCTF] Indicate - MISC / Hybrid Analysis (68) | 2023.01.28 |
[JISCTF] Common - MISC / Python (77) | 2023.01.19 |
[JISCTF] Unknow Ransomware - MISC / Base64 (70) | 2023.01.12 |