Modsecurity 语法
Modsecurity 语法
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual
Configuration Directives
- SecRule
- SecMarker 配合 skipAfter 约等于 goto
phase
- 1 request header
- 2 request body
- 3 response header
- 4 response body
Variables
ARGS
http://afdafa.com/?a=1234&b=2345
ARGS:[“1234”, “2345”]
ARGS_NAMES:[“a”, “b”]
ARGS 会默认 urldecode
FILES
完整的上传文件的文件名列表
FILES_NAMES
Content-Disposition: form-data; name=”upfile”; filename=”cmdjsp.jsp”
upfile
MULTIPART_FILENAME
FILES 的最后一个元素
MULTIPART_NAME
FILES_NAMES 的最后一个元素
REQUEST_BASENAME
不包括路径,只有文件名, d.php
REQUEST_FILENAME
包括路径, /b/c/d.php
Disruptive actions
- allow 全局允许
- pass 此条规则允许
- block
- drop
- deny
注意事项
& 操作符
1 | |
1 | |
SecRule ARGS|!ARGS:z dirty “id:9”
1 | |
SecRule REQUEST_LINE “HTTP” “phase:2, log, logdata:%{ARGS}, block,id:’9000’”
SecRule ARGS “@rx %aa” “phase:2, block,msg:’xxx’,log, logdata:%{matched_var}, id:’1234’”
logdata 记录要查看的变量
## 其它说明
* 正则或者其它字符串比较的操作,正则或字符串不能小于3个字符
* 要使用 tx.[0-9] 时必须使用 capture 指令