Azure Front Door WAF 正在阻止 .AspNet.ApplicationCookie

Cra*_*len 3 asp.net azure azure-front-door azure-waf

我想知道是否还有其他人在 Azure Front Door 和 Azure Web 应用程序防火墙上遇到过这个问题并且有解决方案。

WAF 正在阻止对我们的 ASP.NET Web 应用程序的简单 GET 请求。被触发的规则是DefaultRuleSet-1.0-SQLI-942440 SQL Comment Sequence Detected

根据这个截断的示例,我唯一能找到 sql 注释序列的地方是在 .AspNet.ApplicationCookie 中:RZI5CL3Uk8cJjmX3B8S-q0ou--OO--bctU5sx8FhazvyvfAH7wH。如果我删除 cookie 值中的 2 个破折号“--”,请求将成功通过防火墙。一旦我将它们添加回来,请求就会被相同的防火墙规则阻止。

看来我有2个选择。禁用我不想执行的规则(或将其从 Block 更改为 Log),或更改 .AspNet.ApplicationCookie 值以确保它不包含任何会触发防火墙规则的文本。cookie 是由 Microsoft.Owin.Security.Cookies 库生成的,我不确定是否可以更改它的生成方式。

Meh*_*ral 5

我也遇到了同样的问题。

如果您查看 cookie 值:RZI5CL3Uk8cJjmX3B8S-q0ou--OO--bctU5sx8FhazvyvfAH7wH有两个 -- 这是潜在危险的 SQL 命令,可以注释掉您要查询的 SQL 命令。在注释掉您的查询之后,攻击者可能会运行他们的命令而不是您的命令。

但是,很明显,这个 cookie 不会在 SQL 端运行任何查询,我们对此很确定。因此,我们可以创建不会运行特定条件的规则排除项。

转到您的 WAF > 单击左侧边栏选项卡上的托管规则 > 单击顶部的管理排除项 > 并单击添加

在您的情况下,添加此规则就可以了:

匹配变量:请求 cookie 名称运算符:以选择器开头:.AspNet.ApplicationCookie

但是,我使用 Asp.Net Core 3.1 和 Asp.Net Core Identity。我也遇到了其他问题,例如 __RequestVerificationToken。

在此处输入图片说明

这是我的完整排除列表。我希望它有帮助。

在此处输入图片说明

PS我认为目前有一个小故障。如果您的环境(例如 UAT)有 IP 限制,由于这些排除,Web 应用程序防火墙会绕过 IP 限制,即使您的 WAF 仍有自定义 IP 限制规则,您的 UAT 站点也会向公众开放。