Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Study for me

Path Traversal 취약점 본문

정보보안

Path Traversal 취약점

k4sud0n 2021. 4. 30. 14:55

Path Traversal(경로 조작)은 문자 그대로 파일의 경로를 조작하여, 주어진 권한 외 파일에 접근할 수 있는 취약점 입니다. 사용자의 입력 데이터가 적절한 검증 없이 URL에 직접적으로 사용될 경우 의도하지 않은 임의의 경로에 접근할 수 있는 Path Traversal 취약점이 발생하게 됩니다. 

취약점이 발생하는 이유

일반적으로 사용자가 웹 서버에 파일을 요청 할 때, URL을 통해 파일의 이름을 전달하고 서버는 그 입력값으로 파일을 찾아 클라이언트로 보냅니다. Path Traversal 취약점은 이러한 특징을 악용하여 공격을 수행합니다. 공격자가 서버에 경로 표현 문자를 조합하여 파일을 요청하면 서버 운영체제는 넘겨받은 입력값의 경로 표현 문자로 인해 지정된 디렉토리 외의 파일도 공격자에게 보내게 됩니다. 

/ Path identifier
.. Parent directory
* /tmp/test/../1234 => /tmp/1234
? Query identifier
* ? 뒤는 query로 해석
# Fragment identifier
* # 뒤의 값은 Server로 전달되지 않음
& Parameter separator
* key1=value&key2=value... 형식으로 사용

 

취약점을 통한 공격방법

위 그림처럼 서버의 파일을 다운로드 받을 수 있는 URL에 경로 표현 문자를 조합하여 서버에 요청합니다. ../과 같은 구분 문자를 통해 의도한 경로가 아닌 상위 경로에 접근해 다른 파일을 호출하는 방식입니다.

방어방법

사용자의 입력 데이터가 경로로 사용되는 경우에는 URL Encoding과 같은 인코딩을 사용해 사용자의 입력 데이터에 포함된 구분 문자를 인식하지 않도록 할 수 있습니다. 이를 통해 Path Traversal 취약점을 방지할 수 있습니다. 

Comments