'Upload My Memo' 에서 게시글을 올릴 수 있다.
우선, 웹페이지의 동작 구조에 대해 알아보기 위해 게시글을 올려보자.
테스트로 아무렇게나 적어보면, 메인페이지에 우리가 적은 게시글이 올라온다.
들어가보자.
다음과 같은 URL의 구조를 가지고 있다. GET형식으로 해당 메모의 내용을 가져온다는 것으로 보인다. 그렇다면 정확하게 알기 위해 코드로 넘어가보자.
해당 루트에서 아무런 GET파라미터 검증을 하지 않고 그대로 파일을 읽고 있다.
이는 File Travel 공격을 시도해볼 수 있다는 점이다.
그렇다면 문제에서 원하는 flag.py를 읽게 할려면 flag.py에 위치한 디렉토리에 접근 후 읽게하면 문제가 풀린다는 것이다.
exploit code는 다음과 같다
../flag.py