
해당 문제를 풀기 위해서도, 이전과 같이 서버 생성하기 버튼을 클릭하고 문제 파일을 다운로드하여야 합니다.

생성된 서버에 들어가니 해당 화면을 볼 수 있었습니다.

upload my memo를 클릭하니 해당 화면이 나타났습니다.
아직 잘은 모르지만, 임의로 upload를 해보았습니다.
Filename에는 flag.txt를 입력하고 Content에는 1234를 입력 한 후,
Upload를 해보았습니다.


upload 후에 home 화면으로 돌아갔더니, upload한 목록이 나타난다는 것을 확인할 수 있었습니다.
다음으로는, 문제에서 다운 받은 코드를 살펴보았습니다.


코드를 통해 read 함수의 try 문에서 open 메소드 안에 " UPLOAD_DIR / filename "을 확인할 수 있었습니다.

임의로 만든 flag.py 를 다운로드한 url을 보면,
read 함수에서 name 파라미터에 Filename = flag.py 인 Memo를 다운한 것을 볼 수 있었습니다.
우리가 이전에 코드를 통해 본 read 함수를 생각해 보면,
서버 생성하기 창에서 업로드된 파일들의 디렉터리가 Filename 바로 위 디렉터리인 것을 알 수 있습니다.
그러므로 다시, flag.txt 파일 업로드 url로 돌아가서

url에서 name의 파라미터를../flag.py로 수정해 주었습니다.

URL 에서 name=../flag.py으로 수정하였더니 우리가 찾고자 하는 flag가 출력된 것을 확인할 수 있었습니다.

문제 풀이 완-료!
'Dreamhack' 카테고리의 다른 글
| [Dreamhack_문제 풀이 _Carve Party] (0) | 2023.11.25 |
|---|---|
| [Dreamhack_문제 풀이 _web-ssrf] (0) | 2023.11.22 |
| [Dreamhack_web 문제 풀이 _ image-storage] (0) | 2023.11.18 |
| [Dreamhack_web 문제 풀이_command-injection-1] (0) | 2023.11.18 |
| [Dreamhack 문제 풀이] _ Mango (0) | 2023.11.10 |