본문 바로가기

Dreamhack

[Dreamhack_web 문제 풀이 _file-download-1]

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

 

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

 

 

upload my memo를 클릭하니 해당 화면이 나타났습니다.

아직 잘은 모르지만, 임의로 upload를  해보았습니다.

 

 Filename에는 flag.txt를 입력하고 Content에는 1234를 입력 한 후,

Upload를 해보았습니다.

 

upload 후에 home 화면으로 돌아갔더니, upload한 목록이 나타난다는 것을 확인할 수 있었습니다. 

 

다음으로는, 문제에서 다운 받은 코드를 살펴보았습니다. 

 

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

임의로 만든 flag.py 를 다운받은 URL

 

 

임의로 만든 flag.py 를 다운로드한 url을 보면,

read 함수에서 name 파라미터에 Filename = flag.py 인 Memo를 다운한 것을 볼 수 있었습니다.

 

우리가 이전에 코드를 통해 본 read 함수를 생각해 보면,

서버 생성하기 창에서 업로드된 파일들의 디렉터리가 Filename 바로 위 디렉터리인 것을 알 수 있습니다. 

 

그러므로 다시, flag.txt 파일 업로드 url로 돌아가서

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

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

 

문제 풀이 완-료!