我一直在尝试将WAF放在AWS的负载均衡器上。
我的Web应用程序中有一个参数(但仅在一个URL中使用,并非在所有URL中使用),我故意留出了命令注入漏洞,为解决此问题,我决定使用AWS ACL并放置一个正则表达式来对其进行修复。规则告诉它,当“ path”参数与正则表达式不匹配时,我应该阻止,并且作为ACL的默认操作,我应该保留allow。
结果是我发出的所有请求都带有或不带有path参数的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
考虑您要在URI上设置规则,而不是查询arg。查询arg仅查看attribute的值,该值是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。