R's Hacking Daily Log

Directory Traversal - Lab(2) 본문

Port Swigger/Directory Traversal

Directory Traversal - Lab(2)

hanhxx 2023. 5. 19. 16:20

Lab 4 )

이번 lab에서는 web server 측에서 url decode를 실행한다고 한다. 

일단 lab에 들어가서 아이템을 하나 눌러 packet을 잡아보면 

 

 

(....// 사용한 경우)

(../ 사용한 경우)

 

Traversal sequence를 그냥 사용하는 경우에는 모두 "No such file" 결과가 나오는 걸 볼 수 있다.

 

 

 

그래서! sequence를 url encode 해서 

 

 

packet을 보내봤더니 response 결과가 원하는 대로 나오지 않았다. (?!)

 

 

그래서 encode를 한 번 더 실행해서 packet을 보내봤다. 

 

 

../ sequence를 두 번 인코딩해서 filename 값을 조작하니 /etc/passwd 내용이 response에 출력된 걸 볼 수 있다.

 

 

 

 

 

 

Lab 5 )

다섯 번째 lab은 유효한 path로 시작하는 filename을 사용해야 한다는 것이 조건이다. 

 

 

packet을 잡아서 확인하니 filename이 /var/www/images로 시작하는 걸 볼 수 있다.

이번 lab에서 요구하는 기본 경로가 /var/www/images인가 보다. 

 

 

이럴 경우에는 요구되는 경로를 앞에 적어주고 접근하고자 하는 directory까지 이동하기 위해 

../ sequence를 뒤에 이어붙이면 된다. 

 

 

그러면 서버 측에서는 /var/www/images까지 접근했다가 sequence를 보고 다시 directory를 이동할 것이고

root directory에 있는 /etc/passwd 파일을 출력해 주는 것~

 

 

 

 

 

Lab 6 )

마지막 lab은 서버에서 요구하는 파일 확장자로 filename 값을 지정해야한다. 

packet을 확인해보면 jpg 확장자로 파일명이 지정되야 함을 알 수 있다.

 

 

파일 확장자를 지정하는 경우에는 공격자 입장에서 접근하고자 하는 파일까지의 경로를 적고

[ Null byte + 확장자명 ]을 입력하면 된다. 

 

 

../../../etc/passwd%00.jpg

다음과 같은 입력값이 있을 때, 어플리케이션은 맨 뒤의 확장자 명이 jpg인 걸 확인하고 그냥 Okay! 할 것이다.

 

그리고 null byte 앞에까지만 유효한 filename 값으로 사용되기 때문에 결과적으로 /etc/passwd 파일 내용을

출력할 수 있게 되는 것. 

 

 

 

이렇게 해서 directory Traversal에 관련된 모든 Lab을 살펴보았다!!

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

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