본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


웹 취약점(Web vulnerability)

25. 경로 추적(PT)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 12. 10.

 

경로추척 취약점은 웹 어플리케이션 서버의 파일 또는 디렉토리에대한 접근이 제한적이지 않고 허용이 되어 있어 해커로부터 경로가 탈취되어 중요 정보획득 및 변조가 가능한 취약점을 의미 합니다.

웹주소에 아래처럼 특정 상대경로를 계속해서 입력 해 가면서 정보가 탈취할 수 있을때가지 해커가 입력이 가능하면 해당 취약점이 존재한다 볼 수 있습니다.

#다운로드 기능이 있는 주소를 상대로 아래처럼 시도를 합니다.

#1차 시도
http:127.0.0.1/../../../../../../../../../../../etc/passwd

#2차 시도
http:127.0.0.1/../../../../../../../../../../etc/passwd

#3차 시도
http:127.0.0.1/../../../../../../../../../etc/passwd

#4차 시도
http:127.0.0.1/../../../../../../../../etc/passwd

이러한 방식으로 계속 실행..

 

 

#방법1

이러한 패턴에 대비하여 사용자의 요청이 있는 경우에 요청값을 필터해야 합니다.

대표적으로 허용해서는 안되는 문자 타입 입니다.

문자 설명
. Path Traversal 가능성의 확인
/ 특정 Path의 접근 가능성을 확인
\ 운영환경에 따른 Path 접근 확인
% UTF 인코딩 파라미터

파일 다운로드시 이러한 요청이 들어오게 되면 해당 값을 치환하여 주도록 합니다.

 

#방법2

웹 어플리케이션 상위 버전에서는 이러한 요청을 처음부터 실행되지 않게 막는 경우가 있습니다.

톰캣 서버를 예로 들면 해당 특수기호가 포함된 요청이 들어오면 400 또는 401 오류를 반환합니다.

이러한 경우에 서버의 정보가 나타날 수 있으므로 서버정보를 항상 끄도록 하며, 오류페이지에서의 오류 원인 또한 가려두도록 합니다.

* 파일 : 톰캣 server.xml

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="false" >
    <Context path="" docBase="배포위치" reloadable="false"></Context>
    <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" /> <!-- 오류 리포팅 기능을 off 합니다 -->
</Host>

 

또한 오류가 발생하더라도 웹 어플리케이션 서버에서 바로 오류처리를 해 버리므로 내가 설정한 400페이지, 401페이지로 이동이 되지 않을 수 있습니다.

 * 물론 사용하는 웹 어플리케이션 형태마다 다를 수 있습니다.

이러한 경우에는 웹 어플리케이션 특수문자에 대한 요청을 허용해 주도록 합니다.

대신 이러한 경우에는 자체 설정한 필터 또는 인터셉터기능이 해당 요청을 검증해야 합니다.

* 파일 : 톰캣 server.xml

<!-- 생략.. -->
<Service name="Catalina">
    <!-- 생략.. -->
    <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="18723"
        relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;" />
        <!-- relaxedPathChars과 relaxedQueryChars값을 주어서 특수기호 요청도 허용하게 합니다 -->
</Service>

 

이상으로 표준취약점 경로추적(PT)에 대해서 간단하게 살펴보았습니다.

궁금한점 또는 틀린 부분은 언제든 연락주세요! 👻

반응형

'웹 취약점(Web vulnerability)' 카테고리의 다른 글

27. 데이터 평문전송(SN)  (0) 2021.12.10
26. 위치공개(PL)  (0) 2021.12.10
24. 관리자 페이지 노출(AE)  (0) 2021.12.10
23. 파일 다운로드(FD)  (0) 2021.12.10
22. 약한 문자열 강도(BF)  (0) 2021.12.09
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글