Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么路径是“路径”/C:badfile";有时ASP.NET自定义错误处理无法捕获?_Asp.net_Security_Iis_Configuration - Fatal编程技术网

为什么路径是“路径”/C:badfile";有时ASP.NET自定义错误处理无法捕获?

为什么路径是“路径”/C:badfile";有时ASP.NET自定义错误处理无法捕获?,asp.net,security,iis,configuration,Asp.net,Security,Iis,Configuration,我最近在一次安全扫描中遇到了一个奇怪的情况,我很难解释它。简而言之,以下URL始终返回HTTP 400和YSOD: 该网站是ASP.NET 4,托管在IIS7.5下的MaximumASP上。此站点配置为打开自定义错误和默认重定向页面。这可以通过导致请求验证将您转到错误页面来证明: 我们发现将此请求发送到自定义错误页面的唯一方法是在web.config中的system.webServer.httpErrors下添加一个条目(显然,在上面的站点上没有这样做,但在其他MaximumASP站点上有这样

我最近在一次安全扫描中遇到了一个奇怪的情况,我很难解释它。简而言之,以下URL始终返回HTTP 400和YSOD:

该网站是ASP.NET 4,托管在IIS7.5下的MaximumASP上。此站点配置为打开自定义错误和默认重定向页面。这可以通过导致请求验证将您转到错误页面来证明:

我们发现将此请求发送到自定义错误页面的唯一方法是在web.config中的system.webServer.httpErrors下添加一个
条目(显然,在上面的站点上没有这样做,但在其他MaximumASP站点上有这样做)

所以我的问题有两个:

  • 为什么这个请求没有被通常的.NET错误处理捕获,结果是自定义错误页被服务
  • 为什么我只能在MaximumASP上看到这种情况?我无法在任何其他IIS/ASP.NET环境中复制具有这种模式的HTTP 400

  • 它可能是请求过滤,特别是它不喜欢C:bit,担心这是某种目录travesal攻击。许多webhosts安全设置将阻止url

    最有可能猜测正在使用的产品是UrlScan

    由于此过滤在调用链中的较低级别上运行,因此请求本身永远不会传递到asp.net应用程序进程(因为许多被缓解的攻击旨在诱使IIS返回应用程序文件夹之外的文件)。因此,任何应用程序定义的错误例程都不会看到它,但是会触发IIS错误页面(这是您通过webc.config配置的页面)。

    ASP.NET 4还允许您配置所使用的字符 通过URL字符检查。当ASP.NET在中发现无效字符时 URL的路径部分,它拒绝请求并发出HTTP 400(错误请求)状态代码。在以前版本的ASP.NET中 URL字符检查仅限于一组固定的字符。在里面 在ASP.NET 4中,您可以使用新的 httpRuntime配置的requestPathInvalidChars属性 元素,如以下示例所示:


    很好的指针,但这并不能解释为什么自定义错误页面不会出现。“:”字符位于默认的requestPathInvalidChars值集中,当请求冒号时,普通应用程序抛出HTTP 400并加载自定义错误页。事实上,请求:抛出一个HTTP 500,因此显然,处理不只是基于单个字符。我们刚刚在firefox中使用了篡改数据来查看HTTP流-返回400错误(不是500)。是的,同意,“C:badfile”模式thorws 400,我要说的是请求:(URL后面只有一个冒号),投掷500那么是什么导致MaximumASP的不同反应?在一个本地测试环境中,我得到了每个400,并且为每个调用了自定义错误。应该是mypal4me/:(带斜杠)应该是400。MaximumASP端配置错误?最好检查日志,看看返回的错误是否为500.19