경로조작 공격
경로조작(Path Traversal) 공격은 외부에서 전달된 값이 서버 내부의 파일을 참조하는데 사용되는 경우에 발생하는 취약점으로, 외부 입력 값에 경로를 조작하는 문자열(. .. / \ 등) 포함 여부를 확인하지 않고 사용하면 제한된 경로를 벗어나 시스템 파일 등에 접근이 가능해지는 취약점입니다.
=> 이 방식은 파일 저장 경로는 외부에 노출되지 않으나, 파일명에 경로 조작 문자열 포함 여부를 확인하지 않았기 때문에 원래 접근할 수 없는 (시스템) 경로의 파일을 다운로드 할 수 있는 문제가 발생
보안대책
- 외부 입력값을 서버 내부 파일을 참조하는데 사용하는 경우, 외부 입력값에 경로 조작 문자열 포함 여부를 확인하고 사용하거나, 사용할 수 있는 값을 미리 정의하고 정의된 범위 내의 값만 사용하도록 제한(허용 목록 방식의 제한)
- 파일 업로드 기능을 안전하게 구현하면 필연적으로 파일 다운로드 기능을 구현해야 하며, 파일 다운로드 기능을 구현할 때는 경로 조작 취약점이 발생하지 않도록 해야함