AWSManagedRulesSQLiRuleSet中SQLi_COOKIE规则误拦截合法null值cookie问题咨询
触发原因
AWS官方托管的AWSManagedRulesSQLiRuleSet规则组中,SQLi_COOKIE规则的内置匹配逻辑包含=null;特征,原本用于拦截构造WHERE column=null、OR x=null这类SQL注入 payload,但是规则未做上下文语义校验,只要Cookie字段中出现=null;格式的内容就会触发拦截,属于托管规则的特征设计过宽导致的误判,你业务中使用的ajs_user_id=null;、ajs_group_id=null;这类合法Cookie恰好命中了该特征。你测试的curl --cookie "ajs_group_id=null;" http://example.com返回403响应就是该误判的直接表现。
可行的解决方案
- 配置规则排除项(最推荐,无业务改动、不降低全局防护能力)
针对SQLi_COOKIE规则添加排除条件,指定当Cookie的键名为ajs_user_id、ajs_group_id这类合法使用null值的字段时,跳过该规则的检测。该方式仅排除特定合法字段的匹配校验,其余Cookie字段的SQL注入防护能力不受影响。 - 调整业务Cookie值格式(次选,无WAF配置改动)
把业务侧设置的这类Cookie的null值修改为带引号的字符串"null"、空字符串''或自定义占位符(如__EMPTY),避开=null;的匹配特征即可正常通行。 - 前置允许规则(仅适合临时测试使用)
在WAF规则链的最优先级位置添加允许规则,匹配携带对应合法Cookie的请求直接放行。注意该方案会让匹配到的请求失去所有后续WAF规则的防护能力,存在安全风险,不建议长期使用。 - 自定义SQLi检测规则(适合有安全运营能力的团队)
关闭托管规则组中的SQLi_COOKIE规则,自行编写精准的Cookie维度SQL注入检测规则,去掉=null;这类宽松匹配特征,补充更具针对性的注入payload匹配逻辑,兼顾防护能力和业务兼容性。
内容的提问来源于stack exchange,提问作者santosh baruah
相关产品推荐
相关产品推荐

