【问题标题】:WAF is blocking ASP.NET website due to Scriptresource.axd由于 Scriptresource.axd,WAF 正在阻止 ASP.NET 网站
【发布时间】:2019-02-11 18:51:11
【问题描述】:
带有 Ajax 控制工具包的 ASP.NET (Framework 3.5, IIS 8.5, windows server 2012R2) 被 WAF (Web Applications
防火墙)。以下是WAF的截图
这些是来自 WAF 的签名
我尝试在网页上禁用 ajax 组件,但仍然得到
同样的问题。
有什么建议吗??
【问题讨论】:
标签:
asp.net
ajaxcontroltoolkit
web-application-firewall
【解决方案1】:
许多托管公司使用 Plesk 控制面板,该面板默认实施 ModSecurity Web 应用程序防火墙 (WAF)。虽然您可以在 Plesk 上完全关闭 Web 应用程序防火墙 (WAF),但这不是一个好主意,因为 WAF 的目的是帮助保护您的网站免受各种攻击。相反,只关闭导致问题的特定规则 ID。
在这种情况下,WAF 是 AJAX 调用所必需的块 .axd 文件。因此,您需要在您的网站上允许 .axd 文件,即“Scriptresource.axd”和“WebResource.axd”。
-
通过打开 Plesk WAF 页面上的“ModSecurity 日志文件”来识别违反的特定规则 ID。
-
在日志文件中搜索 403 Access Denied 消息,然后查找类似于 [id "942440"] 的子字符串。这是被违反的规则 ID。对于 ModSecurity 2.9,942440 规则是阻止 .axd 文件的规则。
-
通过在 Plesk WAF 页面的“关闭安全规则”部分中键入 ID 号,关闭适用于此问题的“安全规则”。在本例中,您只需在文本框中键入数字“920440”。
【解决方案2】:
它引用了一个评级为“HIGH”的 ASP.NET 填充攻击向量。根据您的 WAF,这可能是阻止您的应用程序的预构建签名,并且可能与 Ajax 控件没有直接关系。
CVE-2010-3332
有几条路线可供选择:
- 确定您是否确实在解密期间暴露了敏感的 IIS 错误代码并在代码中解析。这是一个旧的 CVE,所以最新的 ASP.NET 将减轻它所能做的。其余的由开发者决定。
- 验证您的系统是最新的补丁(ASP 更新、Windows 更新、任何更新)。 Microsoft 漏洞已在补丁 MS10-070 中修复。
- 如果这实际上是一个真正的误报,则需要训练 WAF 以将此代码和应用程序行为视为可接受的。如果您已用尽代码和修补程序并确定这不是导致签名块的 CVE,这是最后的手段。
Web 应用程序防火墙与传统防火墙(或 NG)的不同之处在于,它们需要针对特定应用程序进行定制才能正常工作。这很痛苦,但需要正确保护单个应用程序。
您的 WAF 应该能够在学习透明模式下运行,以了解可接受的行为并围绕默认应用程序行为创建策略。学习过程完成后,您可以打开强制行为并警告错误。然后修复 WAF 或应用程序中的错误。一旦完成,您就可以强制执行并阻止错误。如何实现这一点取决于 WAF 供应商。
由于这是一个 CVE 签名块,您可能需要更深入地了解 .Net 如何处理 URL。