https://dreamhack.io/wargame/challenges/417
파일 취약점을 리눅스 환경에서 실습하는 문제이다.
가상머신으로 들어가면 문자만 뜨고 아무것도 없다.
그래서 문제 파일 중 main.py를 확인해 봤다.
file() 함수를 보면 ./file 페이지에서 파일을 읽어서 보여준다.
근데 파일을 읽을 때 아무런 검사도 하지 않으므로 파일 취약점이라고 할 수 있다.
admin() 함수르 보면 /admin 페이지에서 cmd를 get으로 받아서 실행시키고
API-KEY를 요구한다.
API-KEY는 주로 환경변수에 있으므로 /file페이지에서 시스템의 메인 디렉토리를 찾은 후에 환경변수 설정 파일에 들어가야 한다.
환경변수 파일에 들어가서 API_KEY를 찾았다.
admin 페이지에서 cmd를 get으로 받아서 실행시키므로
admin에서 param에 API-KEY와 cmd 요청으로 flag 파일로 이동더니
flag 값을 얻을 수 있었다!
참고
'CTF > Dreamhack' 카테고리의 다른 글
[Dreamhack] session (0) | 2023.04.12 |
---|---|
[Dreamhack] image-storage (0) | 2023.04.12 |
[Dreamhack] session-basic (0) | 2023.04.04 |
[Dreamhack] [wargame.kr] login filtering (0) | 2023.04.04 |
[Dreamhack] Carve Party (0) | 2023.04.04 |