브라우저의 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이 아닌, 사용..
Encoding Obfuscation
Web/Web Hacking Techniques
💡 해당 다양한 인코딩을 통한 난독화 기법은 portswigger을 상당부분 참고하였습니다.다양한 취약점을 식별하여 해당 취약점에 대한 Exploit을 진행 할 때 Payload에서 문자열 혹은 dot(.), / 등이 필터링 되어 있는 경우고 종종 다수 존재한다. 이 때 이를 우회할 수 있도록 인코딩을 통해 난독화를 이용할 수 있다. 클라이언트와 서버는 다양한 인코딩 방식을 사용하여 서로 시스템간의 데이터를 전송한다. 전달받은 데이터는 디코딩 되어 백엔드단에서 처리되된다.일반적으로 Query 매개변수는 일반적으로 서버측에서 URL 디코딩 되며,HTML 요소의 텍스트 콘텐츠는 클라이언트측에서 HTML 디코딩 된다.URL 인코딩을 통한 난독화Percent-encoding(퍼센트 인코딩) 이라고도 불리며, ..
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 요청을 보내는 ..