Web/Web Hacking Techniques
브라우저의 URL 정규화 방식(Proxy Tool Bypass)
g2h
2025. 5. 13. 14:24
다양한 브라우저들(Chrome, Firefox 등)는 RFC 3986에 정의된 "remove dot segments" 알고리즘에 따라 URL의 경로를 정규화 과정을 거치게 된다.
예를 들어 /a/b///../../../c 는 /a/b/c 와 같이 축소된다. "..", "/" 은 삭제 혹은 병합되며 경로 조각이 제거된다.
URL에 포함된 ASCII 문자나 특수문자를 자동으로 URL인코딩이 이루어지게 된다.
Java의 HttpURLConnection 등 프로그램 방식 호출은 기본적으로 원본 문자열을 그대로 전송하므로, 브라우저와 달리 인코딩 없이 결과가 달라질 수 있다.
Proxy Tool의 URL 조작 방식
대표적으로 Burp Suite 같은 프록시 도구를 사용하면 브라우저처럼 자동 정규화된 URL이 아닌, 사용자가 지정한 URL형식 그대로 요청을 보낼 수 있다. 기본적으로 추가 인코딩이나 경로 수정을 하지 않는다.
<script>alert(1)</script>
예를 들어 위와 같이 스크립트를 작성하게 되면 <가 %3c와 같이 인코딩 되지만 Proxy Tool에서는 원본 <문자가 그대로 서버로 전송되게 된다. 즉, 이처럼 Proxy Tool을 통해 경유할 경우, 브라우저가 자동으로 처리하는 URL 인코딩,정규화 과정을 우회할 수 있다.