首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止绕过Azure App Gateway WAF规则

防止绕过Azure App Gateway WAF规则
EN

Stack Overflow用户
提问于 2021-11-01 18:27:20
回答 1查看 287关注 0票数 0

我们的REST API托管在Azure API管理(内部VNET模式)中,只能通过网站管家应用网关(网站管家v2 SKU)从互联网访问,并在网站管家中启用OWASP CRS3.1规则。然而,有一项渗透测试观察到,黑客可以通过调用Content-Type标头为"application/xml“的POST API来绕过网站管家规则,但仍在请求正文中发送恶意JSON有效负载。在这种情况下,请求不会被WAF拦截,并且API返回HTTP 200,这与Content-Type被发送为"application/json“的情况不同,在这种情况下,相同的恶意有效负载被WAF返回403 (禁止)阻止。有没有办法在App Gateway/WAF拦截恶意JSON负载,即使请求头Content-Type header是"application/xml"?或者,是否需要在API端注意此验证,即传入请求是否具有"application/json“以外的Content-Type?

EN

回答 1

Stack Overflow用户

发布于 2021-11-02 22:18:47

如果这只是一个头的问题,你可以只允许application/json或只阻止application/xmlcreate a custom rule

修改该页面中的示例,这将阻止任何不包含application/json的内容

代码语言:javascript
复制
{
    "customRules": [
      {
        "name": "requirejson",
        "ruleType": "MatchRule",
        "priority": 2,
        "action": "Block",
        "matchConditions": [
          {
            "matchVariable": "RequestHeaders",
            "Selector": "Content-Type",
            "Operator": "Contains",
            "NegationConditon": true,
            "matchValues": [
              "application/json"
            ]
          }
        ]
      }
    ]
  }

将否定条件设置为true会将其从==转换为!=规则,就像在if Content-Type does not contain application/json中一样。尽管请记住,这将适用于“正确设置”标头,但如果标头设置为仅包含匹配字符串的任何内容,则此规则仍允许进一步处理。

对有效负载的完整解释是here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69801193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档