R's Hacking Daily Log

Directory Traversal (2) 본문

Port Swigger/Directory Traversal

Directory Traversal (2)

hanhxx 2023. 5. 18. 21:13

Common obstacles to exploiting file path traversal vulnerabilities

이번에는 Directory Traversal과 관련된 방어와 우회에 대해 알아보고자 한다!

 

사용자의 입력 값을 파일 경로로 사용하는 어플리케이션에서

Directory Traversal을 막기 위해 traversal 시퀀스가 유효하지 못하도록 만든다고 하는 데..

다음과 같은 경우에 공격자의 입장에서는 어떻게 우회할 수 있을까??

 

 

CASE 1 ) 시퀀스, 제거하자!

공격자는 현재 directory에서 root directory로 이동하고 싶은데 서버가 시퀀스를 제거한다고 한다.

 

이때 [ ....// or ....\/ ]와 같이 시퀀스 하나를 다른 시퀀스가 감싸고 있는 형태로 입력하면 

시퀀스 하나가

제거되도 남은 문자들로 또 하나의 시퀀스가 만들어지기 때문에 directory traversal이 가능해진다.

 

 

CASE 2 ) URL DECODE를 사용해 볼까?

웹 서버가 사용자의 입력 값을 사용하기 전에 시퀀스를 제거하고, url decode를 실행한다고 한다.

 

공격자는 url decode가 실행되고 난 후의 값이 시퀀스로 동작할 수 있도록 

시퀀스를 url encode 한 값을 사용하면 이 방법을 우회할 수 있게 된다. 

 

 

CASE 3 ) 내가 원하는 Directory는 이게 아닌데?

웹 서버가 요구하는 directory로부터 시작하는 경로를 입력해야 하는 경우,

공격자는 요구되는 directory를 입력하고 그 위치에서 자신이 원하는 파일의 위치까지 시퀀스를 이용해

이동하면 그만이다!

 

 

CASE 4 ) 파일 확장자를 만족시켜라!

웹 서버가 요구하는 파일 확장자가 있는 경우,

경로 맨 뒤에 null byte와 확장자를 붙여서 입력하면 서버는 자신이 요구하는 확장자가 만족되었다고 판단하지만,

경로에 대한 값은 null byte 앞에까지만 해당되기 때문에 공격자는 자신이 원하는 경로로 접근할 수 있다.

 

 

** 각각의 경우에 대한 활용 예시는 Lab부분에서 살펴보도록 하자!

'Port Swigger > Directory Traversal' 카테고리의 다른 글

Directory Traversal - Lab(2)  (0) 2023.05.19
Directory Traversal - Lab(1)  (0) 2023.05.19
Directory Traversal (Path Traversal) (1)  (0) 2023.05.17
Directory Traversal Lab  (0) 2022.11.06
Directory Traversal  (0) 2022.11.02
Comments