【问题标题】:Problem with ACL AWS Regex Comparation RuleACL AWS 正则表达式比较规则的问题
【发布时间】:2020-04-26 01:41:36
【问题描述】:

我一直在尝试将 WAF 放在 AWS 的负载均衡器上。

我的 Web 应用程序中有一个参数(但它只用于一个 url,而不是全部),我故意留下一个命令注入漏洞,为了解决这个问题,我决定使用 AWS ACL 修复它并放置一个正则表达式规则告诉它,当“路径”参数与正则表达式不匹配时,我应该阻止并且作为 ACL 的默认操作,我应该允许。

结果是我发出的所有请求都以 403 输出,带或不带路径参数。事实是我找不到任何关于这条规则的资料,我也不知道我做错了什么,我附上图片。

https://i.stack.imgur.com/K6rCm.png
https://i.stack.imgur.com/R69Lv.png
https://i.stack.imgur.com/gYVBL.png
https://i.stack.imgur.com/LfyHg.png

【问题讨论】:

  • 对不起,如果我将图像放在代码块中,我是新用户,我没有 10 声望
  • 请包含一些示例文本和所需结果,因为擅长 Regex 的人可能不熟悉 AWS 术语..
  • @farooq 问题不在于正则表达式,我在 regex101.com 和 Java 中测试了很多,问题在于将正则表达式与 URL 参数进行比较的规则配置
  • 好的,Regex 语法有不同的变体,也许您的应用程序使用了不同的 Regex。
  • 你定义的“path”参数不是请求路径,它是一个名为“path”的查询字符串参数。我提到这一点是因为我对此感到困惑。现在...您的规则拒绝此参数的值与正则表达式不匹配的任何请求,或者 - 大概 - 任何不存在此参数的请求。

标签: regex amazon-web-services acl firewall rules


【解决方案1】:

想想你想要的是在 URI 上设置规则,而不是查询 arg。查询 arg 仅查看属性的值,即 URI 中 ? 之后的内容。

https://en.wikipedia.org/wiki/Uniform_Resource_Identifier

此外,WAF 支持标准的 Perl 兼容正则表达式 (PCRE),但有一些例外:

https://docs.aws.amazon.com/waf/latest/developerguide/waf-regex-pattern-set-creating.html

最后,为什么不使用 WAFv2?看来您仍在使用 WAF Classic。

【讨论】:

  • 您好!是的,我需要查看一个名为路径的查询 arg,我无法完成该规则,我使用其他更简单的规则,但感谢您的回复!
猜你喜欢
  • 2017-10-28
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
相关资源
最近更新 更多