단진
대체로 맑음
단진
  • 분류 전체보기 (162)
    • 개발 (112)
      • 회고 (25)
      • 개발과정 (28)
      • 개념 (14)
      • JavaScript (11)
      • TypeScript (12)
      • 알고리즘 (4)
      • GitHub (4)
      • 오류 (9)
      • TMI (5)
    • 일상 (15)
      • 사진 및 여행 (6)
      • 책 소개 (4)
      • 기타 TMI (5)
    • IT (16)
      • 개념 (5)
      • 데이터베이스 (6)
      • 딥러닝 (1)
      • TMI (4)
    • TMI (4)
      • 법률 TMI (4)
    • 보안 (15)
      • Dreamhack (5)
      • Root Me (10)
hELLO · Designed By 정상우.
단진

대체로 맑음

Dreamhack: file-download-1
보안/Dreamhack

Dreamhack: file-download-1

2022. 4. 5. 14:51

파일 다운로드 취약점에 관련된 문제인데 저번에 풀어본 pathtraversal과 비슷한 느낌이다.


첫 화면이다.

 

어떤 역할을 하는지 테스트 하기 위해 아무거나 입력하고 Upload를 눌러본다.

홈 화면에 가보면 test라는 항목이 생긴다. 여기 들어가서 내용을 보면

아까 입력한 제목과 내용이 잘 나온다.

 

flag값은 flag.py 파일안에 있다고 했으니 적절히 경로를 바꿔 flag.py로 접근을 해야 한다.

url을 보면 test의 내용을 보는데 name=test라고 나와있다.

 

이것을 통해 파일이름을 read라는 페이지에 전달해 파일을 가져온다는 것을 알 수 있다.

 

따라서 파일이름을 flag.py의 경로로 설정해주면 된다.

이렇게 입력한다면

오류가 발생한다.

 

문제 파일을 열어보면

파일이름(filename)에 ..이라는 요소가 있으면 에러를 반환하도록 설정되어 있다.

 

따라서 filename에 ../과 같은 코드를 사용할 수 없다.

파일을 읽어오는 코드를 보면 필터링을 하지 않는다는 것을 알 수 있다.

 

filename을 통해 파일을 불러와 content에 그 파일의 내용을 넣고 read페이지에서 보여준다는 것을 알 수 있다.

하지만 file이름은 query string으로 전달받으며 필터링도 하지 않는다.

 

따라서 원하는 파일의 경로와 이름을 query string으로 넘겨주면 해당 파일에 접근할 수 있다.

이렇게 넣어서 접근하게 되면

flag.py에 접근할 수 있고 그 안의 내용을 볼 수 있다.

'보안 > Dreamhack' 카테고리의 다른 글

Dreamhack: simple_sqli  (0) 2022.04.06
Dreamhack: pathtraversal  (0) 2022.04.04
Dreamhack: xss-1  (0) 2022.04.03
Dreamhack: cookie  (0) 2022.04.03
    '보안/Dreamhack' 카테고리의 다른 글
    • Dreamhack: simple_sqli
    • Dreamhack: pathtraversal
    • Dreamhack: xss-1
    • Dreamhack: cookie
    단진
    단진

    티스토리툴바