WAF支持创建自定义请求处理规则。这对于添加与特定应用程序相关的逻辑非常有用。除了自定义规则外,本实验还将介绍逻辑规则语句、请求采样和 Web ACL 容量单位。
创建自定义规则需要在 WAF 控制台中使用规则构建器。
规则允许设置 HTTP 请求的检查对象,例如:
Source IP
Header
Body
Query Parameters
规则语句是规则的一部分,用于告知 AWS WAF 如何检查 Web 请求, 逻辑运算例如:
AND
OR
NOT
AWS WAF 中的每个规则都有一个顶级规则语句,该语句可以包含其他语句。规则语句可以非常简单。规则语句也可能非常复杂。例如,可以有一个语句,该语句将许多其他语句与逻辑 AND、OR 和 NOT 语句(称为逻辑规则语句)组合在一起。
打开 Web ACL 的 Rules 选项卡,然后从 Add rules 下拉菜单中选择 Add my own rules and rule groups
给规则起个名字, block-header-and-query-string
从下拉列表中选择 matches at least one of the statements(OR)
对于Statement 1使用如下配置,禁止Header里有X-Weak- Spot的请求访问。
违法parameter请求测试
export JUICESHOP_URL=<Your Juice Shop URL>
export JUICESHOP_URL=djbryp4jxosx1.cloudfront.net
curl -I "${JUICESHOP_URL}?x-sneaky-attack=exploit"
违法Headers请求测试
export JUICESHOP_URL=<Your Juice Shop URL>
export JUICESHOP_URL=djbryp4jxosx1.cloudfront.net
curl -I -H "X-Weak-Spot: Exploit" "${JUICESHOP_URL}"
HTTP/1.1 403 Forbidden
Server: CloudFront
Date: Thu, 07 Dec 2023 02:46:41 GMT
Content-Type: text/html
Content-Length: 919
Connection: keep-alive
X-Cache: Error from cloudfront
Via: 1.1 98ca70f529a8725dbdf89b79dad17f6a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: CMH68-P5
X-Amz-Cf-Id: 0_Cbj2bYNA7HsrMyv4zy8v87SI0runYxsnT_McS7WRQyFGaxrBLQkw==
证明WAF已经有效拦截带有违法参数的请求。