regex - 如何在 Modsecurity 规则中编辑正则表达式

标签 regex mod-security

我需要修改以下规则(ID:932130 - 文件REQUEST-932-APPLICATION-ATTACK-RCE.conf)中的特定正则表达式,而不更改原始文件:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@rx (?:\$(?:\((?:\(.*\)|.*)\)|\{.*\})|[<>]\(.*\))" \

所以重点是我需要从 ARGS 变量中排除正则表达式的最后一部分 - [<>](.*)) 我尝试过 SecRuleUpdateTargetById 932130 "!ARGS:/[<>]\(.*\)/"命令 RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf 但没有运气。

非常感谢您的帮助。

最佳答案

感谢您的回复。

我通过使用命令 SecRuleUpdateTargetById 932130 "!ARGS" 从 932130 规则中删除 ARGS 解决了这个问题在 RESPONSE-999-ECLUSION-RULES-AFTER.CRS.conf 内。

之后,我在自定义文件中(在 CRS 之前)创建了一条与 932130 相同的新规则,但仅使用 ARGS 变量且不使用正则表达式 [<>](.*)) 。所以原始文件没有被手动修改过。

在这种情况下,变量保存表名称和字段(例如 - ARGS[设备][描述],它是动态的 - 更多具有相同字段的表。描述字段具有 HTML 段落标记 <p>,并且每当用户在括号中输入一些内容,例如 (test),它会触发规则 932130 并且匹配的值类似于 (test).

关于regex - 如何在 Modsecurity 规则中编辑正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72463056/

相关文章:

regex - (s)printf FORMAT 字符串的权威正则表达式

java - 正则表达式,禁止点 (.) 作为最后一个字符

Apache2 mod_evasive vs mod_security 与 OWASP crs 在防御 DDOS 时?

apache - Apache ModSecurity:另一个具有相同id错误的规则

mod-security - mod_security 误报

python - 从 R 或 Python 中的列中获取经常出现的字符串模式

regex - 用于验证 Solo 借记卡的正则表达式

regex - 正则表达式找到具有优先顺序的匹配项?

mod-security - ModSecurity SecRule 从任何检查中排除 URL

php - 检测 Mod_Security 是否随 PHP 安装?