[HackTheBox] misDIRection - MISC / Shell script

HackTheBox 의 MISC 문제
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
해킹이라고 보긴 좀 뭐하고 해킹할때 쓰일수도 있는 잡다한 기술을 쓸수있는지 물어보는 문제이다.

문제파일로 misDIRection.zip 파일이 주어진다.

압축을 풀어보면 이렇게 .secret 폴더가 안에 들어있다.

.secret 폴더 안에는 이렇게
숫자와 알파벳으로 된 폴더들이 들어있는데,



각 폴더를 들어가보면 이렇게 숫자도 된 내용없는 파일이 있는것도 있고, 없는것도 있다.
추측해보건데,
각 폴더 안에 있는 숫자이름의 파일은
해당 폴더명인 글자의 위치를 나타내는것 같았다.
예를들어 위에 0 같은 경우 플래그의 6번째 자리에 있고,
1 같은 경우 22, 30번 자리에 있고,
4 는 플래그에 없는 것이다.
#!/bin/bash
for i in {1..36}
do
find ./ -name $i -type f >> flag.txt
done
문제를 쉽게 풀기위해 리눅스 환경으로 옮겨서
쉘 스크립트를 짰다.
for 문을 이용해 1부터 36까지 반복하면서
find 명령어로 i 에 해당하는 파일명을 찾아 flag.txt 에 차례로 넣어주는 스크립트이다.

flag.txt 파일의 내용을 보면
이렇게 1번부터 36번까지 알파벳과 숫자가 나열되어 있는것을 볼 수 있다.
f = open('flag.txt','r')
string = ''
for i in range(36):
string += f.readline()[10:11]
print(string)
일일이 모으기 귀찮으니
파이썬을 이용해 빠르게 폴더명만 수집해서 출력시켜준다.

코드를 실행하면 이렇게 바로 출력이 되는데
뭔가 일반적인 텍스트가 아닌것처럼 보인다.

CyberChef(https://gchq.github.io/CyberChef)에서 Base64 디코딩을 해주면 플래그를 찾을 수 있다.