2010-01-06 4 views
2

나는이 작업을 수행 할 수없는 확신 해요,하지만 난 IIS 7을 사용하고IIS가있는 폴더에 + 기호를 넣을 수 있습니까? ,

http://www.mysite.com/cats+dogs/Default.aspx

처럼, 해킹 또는 폴더 이름에 +를 넣어하는 방법을 찾고 있어요 이를 달성하기 위해 가상 디렉터리를 만들려고했지만 작동하지 않았습니다. % 2B를 탐색기 폴더 또는 가상 폴더 이름에 넣을 수 없습니다.

어떻게하면 작동하도록 해킹 할 수있는 아이디어가 있습니까? 우리는 이미 브로셔에 URL을 인쇄 해 두었습니다. 별칭을 지정할 수있는 방법이 있는지 궁금해 할 수 있습니다.

EDIT : +가있는 가상 폴더를 만든 다음 내용이있는 가상 디렉터리를 가리키는 URL로 리디렉션하여이를 파악할 수있었습니다.

+2

"우리는 이미 그것에 브로셔를 인쇄했습니다."- Ooops !! –

+0

참고 : http://stackoverflow.com/q/3375789/12484 –

답변

5

당신이하는 URL 재 작성을하는 사람들과 약간의 행운이있을 수 있습니다. 이 작업은 web.config 또는 httpmodule을 사용하여 매우 쉽게 수행 할 수 있습니다.

+ 문자 문제에 대해 아래에서 언급 한 공간이나 IIS 수정 사항을 사용해야 할 것으로 보이지만 나중에는 URL을 파일에 매핑하기 위해 URL 재 작성을 포함시킬 수 있습니다.

<httpModules> 
     <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </httpModules> 

    <rewriter> 
    <rewrite url="~/cats dogs/Default.aspx" to="~/MyRealFile.aspx" /> 
    </rewriter> 
1

폴더 이름에 "cats dogs"라는 공백을 넣으십시오.

공백 문자는 더하기 문자를 사용하여 인코딩되므로 서버가 더하기 문자를 볼 때 공백이있는 폴더를 가져옵니다.

+0

이것은 예전과 동일하지만 대부분의 최신 브라우저 및 기본 IIS 설정에서는 작동하지 않습니다. – Thorarin

7

IIS 7.0 Breaking changes for ASP.NET 2.0 applications in Integrated Mode

여기에 해결 방법/수정을 표시하는 페이지에서 관련 발췌입니다.

요청 제한 및 다음과 같은 변경 사항을 처리하는 URL은 프로세스 들어오는 요청과 URL을 IIS 방법에 인해 추가 제한을 초래한다.

11) 경로 (하지 쿼리 문자열)에서 인코딩되지 않은 "+"문자가 포함 된 요청 URL은 당신은 404.11 HTTP 오류 받게됩니다 기본

에 의해 거부 - 찾을 수 없음 을 : 요청이 모듈을 필터링으로 구성 시퀀스에 이중 이스케이프 시퀀스가 ​​포함 된 요청을 거부합니다. IIS는 일반적으로 가 정규화 공격을 실행하기위한 시도를 대표하는 시도 에 이중으로 인코딩 URL을 거부하도록 구성 기본적으로 있기 때문에

이 오류가 발생합니다.

해결 방법 :

1) 를 설정하여이 유효성 검사를 비활성화 할 수 있습니다 URL 경로 의 "+"문자의 사용 을 필요로하는 응용 프로그램 의 system.webServer/보안/requestFiltering에서 allowDoubleEscaping 속성 응용 프로그램의 web.config에있는 구성 섹션 그러나 이 취약한 악의적 인 URL에 대한 응용 프로그램을 더 만들 수 있습니다

<system.webServer> 
    <security> 
      <requestFiltering allowDoubleEscaping="true" /> 
    </security> 
</system.webServer> 
관련 문제