ARGS,ARGS_NAMES在mod_security核心规则集中实际意味着什么?
我已经提到了Modsecurity2 Apache Reference,但我没有得到任何明确的想法.
有人可以给我一个特定的想法,最好有一个解释,它实际是什么,以及如何实际触发一个像下面那样积极的规则.
对于诸如“x和6”等情况,下面的规则被触发为正,通常任何“和”后跟数字.在这种情况下,我理解请求文件名是什么.我不明白的是什么是ARGS和ARGS_NAMES.我需要一个参考下面规则的具体例子.
SecRule REQUEST_FILENAME|ARGS_NAMES|ARGS|XML:/* "(?i)\b(?i:and)\b\s+(\d{1,10}|'[^=]{1,10}')\s*[=]|\b(?i:and)\b\s+(\d{1,10}')\s*[<>]|\band\b ?(?:\d{1,10}|[\'\"][^=]{1,10}[\'\"]) ?[=<>]+|\b(?i:and)\b\s+(\d{1,10}')" \ "phase:2,rev:'2.2.5',capture,t:none,t:urlDecodeUni,ctl:auditLogParts=+E,block,msg:'sql Injection Attack',id:'959072',tag:'WEB_ATTACK/sql_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',logdata:'%{TX.0}',severity:'2',setvar:'tx.msg=%{rule.msg}',setvar:tx.sql_injection_score=+%{tx.critical_anomaly_score},setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.%{rule.id}-WEB_ATTACK/sql_INJECTION-%{matched_var_name}=%{tx.0}"
解决方法
例:
http://server.invalid/test.PHP?pretty_arg=test123&ugly_arg=345test ARGS_NAMES = "pretty_arg","ugly_arg" ARGS = "pretty_arg:test123","ugly_arg:345test"
看这里:
> Reference-Manual Variables
> Reference-Manual args
SecRule REQUEST_FILENAME "@streq /path/to/file.PHP" "phase:1,id:2001,nolog,pass,ctl:ruleRemoveTargetById=959072;ARGS:ugly_arg"