쉬울거라고 생각했는데
생각보다 좀 어려웠던 MISC 문제
MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.
어떤 파일이든 읽을 수 있기에 플래그도 읽을 수 있다... 의미심장하다.
문제 소스파일은 따로 주어지지 않고
웹 페이지 주소만 주어진다.
주어진 주소로 들어가보면
File Request 라는 문구와 함께 뭔가 입력할 수 있는 창이 있다.
입력창에 /etc/passwd 를 입력해봤더니
/etc/passwd 파일의 내용이 출력되는것을 볼 수 있다.
입력창을 통해 서버에 있는 파일을 가져와 읽을 수 있다는 것이다.
문제는 플래그가 들어있는 파일명이 무엇인지 모른다는 것이다.
이것저것 파일을 불러와서 읽어보다가
/proc/1/environ 파일을 불러와 읽어봤다.
해당 파일에는 환경변수 정보가 들어있는데
환경변수중에 눈에띄는 HINT 라는 변수가 있었다.
Base64 로 인코딩된 것 같아
CyberChef(https://gchq.github.io/CyberChef/) 에서 디코딩을 해봤다.
where is the flag... we have to find a way to locate the flag!!
라는 문구가 출력된다.
이게 대체 무슨 힌트가 싶어서 계속 보다보니
locate 라는 단어가 힌트였다.
locate는 리눅스에서 사용하는 명령어 중 하나이다.
locate 명령어로 원하는 파일의 위치를 찾을 수 있다.
예를들어
이렇게 testfile 이라는 파일이 있을 경우
sudo updatedb 명령어를 입력하면
시스템 내에 파일의 정보가 모두 db에 저장된다.
그런 상태에서 locate <파일명> 으로 검색하면
위와 같이 해당 파일의 절대경로가 출력되게 된다.
db 파일의 위치는 버전마다 다른데
하나씩 시도하다보면 찾을 수 있다.
문제 서버에서는
/var/cache/locate/locatedb 경로에 db 파일이 있었다.
내리다보니 중간에
flag_1s_h3re_233 이라는 파일이 보였다.
해당 파일의 절대경로를 입력창에 넣어주면
플래그가 출력된다.
'CTF > MISC' 카테고리의 다른 글
[HackingCampCTF] plus minus - MISC / Pwntool (78) | 2023.06.07 |
---|---|
[D^3CTF] d3gif - MISC / PIL (88) | 2023.05.29 |
[angstromCTF] Physics HW - MISC / Zsteg (66) | 2023.05.25 |
[angstromCTF] Simon Says - MISC / Python (72) | 2023.05.18 |
[angstromCTF] Admiral Shark - MISC / Wireshark / HxD (57) | 2023.05.13 |