브라우저의 URL 정규화 방식(Proxy Tool Bypass)
Web/Web Hacking Techniques
다양한 브라우저들(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이 아닌, 사용..
Double (URL) Encoding (이중 인코딩)
Web/Web Hacking Techniques
What is Double (URL) Encdoing? Double URL Encoding란 동일한 인코딩 체계 (URL Encoding)을 사용하여 이중으로 인코딩한 것을 의미한다. 이는 이중으로 인코딩하여, 길고 해석하기 어려운 인코딩 결가값을 도출해낸다. URL에서 안전하지 않은 문자 (공백, 특수문자)등은 url인코딩을 통해 안전하게 전송된다. Why? 보통 이중 인코딩을 하는 이유는 보안 메커니즘을 우회하기 위해 주로 사용된다. url인코딩 된 값을 필터링에 한번 적용시킨 경우 이중 인코딩을 통해 인증체계를 무력화시킬 수 있다. Example 위와 같은 url 인코딩 표를 보고 알아보자. 예를 들어, admin 이라는 문자열이 필터링되고 있다고 가정해 보자. URL을 통해 GET 요청을 보내는 ..