Dangerous Request.Path - 但仅限于asp.net webforms网站的根目录

时间:2018-02-28 20:24:07

标签: asp.net vb.net webforms

我正在通过长期渗透测试报告并解决了绝大多数问题,但我遇到了一个特定的问题,这个问题确实应该通过以前的工作来解决。

为了阻止详细的错误消息,我决定拦截global.asax中的HttpExceptions,如下所示:

    Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
       Dim exc As Exception = Server.GetLastError
       If (exc.GetType Is GetType(HttpException)) Then
           If exc.Message.Contains("potentially dangerous Request.Path") Then
               Response.Redirect("~/")
           End If
       End If
    End Sub

现在是的,这有点肮脏,但它可以工作并拦截这个特殊异常的任何抛出。例如,将浏览器指向https://test.mysite.org/%3cscript%3e_q_q=%27%29%28%27%3c/script%3e,然后站点检测到异常,吞下它并重定向到主页,而不显示错误页面。

但是,如果我转到相同的URL但删除了主机和有效负载之间的斜杠 - 也就是说,https://test.mysite.org%3cscript%3e_q_q=%27%29%28%27%3c/script%3e - 那么异常抛出,您会看到带有可怕详细信息的标准IIS HTTP 500页面例外。我不确定为什么会出现这种情况,我可以做些什么来拦截它 - 在所有其他情况下,修复工作都非常有效。

为了在所述情况下拦截此例外,我可以/应该做些什么?我有一种可怕的感觉,HttpApplication所在的管道中正在发生的事情...

0 个答案:

没有答案