[security][modsecurity] modsecurity 规则说明/中文/转发
原文转发以防丢失。
地址: http://www.catssec.com:8090/exploit/?p=691
转来细读之后,并没有太多的参考价值 :(
modsecurity规则手册
一、变量variable
| ModSecurity | 
| ARGS 请求参数,类型read-only collection | 
| ARGS_COMBINED_SIZE 请求参数的总大小 | 
| ARGS_NAMES 请求参数的名字, 类型read-only collection | 
| ARGS_GET 查询字符串参数,类型read-only collection | 
| ARGS_GET_NAMES 查询字符串参数,类型read-only collection | 
| ARGS_POST 请求体参数,类型read-only collection | 
| ARGS_POST_NAMES 请求体参数的名字,类型read-only collection | 
| FILES 上传文件域,类型read-only collection | 
| FILES_COMBINED_SIZE 上传文件大小 | 
| FILES_NAMES 上传文件表单文件域参数的名字,类型read-only collection | 
| FILES_SIZES 上传文件的大小,类型read-only collection | 
| FILES_TMPNAMES 文件临时名字,类型read-only collection | 
| PATH_INFO URI path | 
| QUERY_STRING 查询字符串 | 
| REQUESET_BASENAME URI basename,同时支持/与\这两种文件分隔符 | 
| REQUEST_BODY 请求体,默认处理application/x-www-form-urlencoded 请求 | 
| REQUEST_COOKIES cookie参数 | 
| REQUEST_COOKIES_NAMES cookie参数的名字,类型read-only collection | 
| REQUEST_FILENAME URI filename/path | 
| REQUEST_HEADERS 请求头,类型read-only collection | 
| REQUEST_HEADERS_NAMES 请求头参数的名字, 类型read-only collection | 
| REQUEST_LINE 请求行 | 
| REQUEST_METHOD 请求方法 | 
| REQUEST_PROTOCOL 请求协议 | 
| REQUEST_URI 请求URI,但不包括hostname | 
| REQUEST_URI_RAW 请求URI,包括hostname | 
| AUTH_TYPE 认证类型,代理模式下非本地认证,需要指定Authorization头 | 
| REMOTE_ADDR 远程地址, 访问者ip | 
| REMOTE_HOST 远程host,访问者hostname,当HostnameLookUps开启时,为dns解析的域名,否则为ip地址 | 
| REMOTE_PORT 远程端口,访问者端口 | 
| REMOTE_USER 访问者用户名 | 
| SERVER_ADDR 服务端地址 | 
| SERVER_NAME 服务端hostname,取值Host请求头 | 
| SERVER_PORT 服务端端口 | 
| SCRIPT_BASENAME 脚本basename, 代理模式不可用 | 
| SCRIPT_FILENAME 脚本 filename,代理模式不可用 | 
| SCRIPT_GID 脚本group ID,代理模式不可用 | 
| SCRIPT_GROUPNAME 脚本 group name,代理模式不可用 | 
| SCRIPT_MODE 脚本权限 ,代理模式不可用 1 表示可执行 2 表示可写 4 表示可读 7 表示可写可读可执行 | 
| SCRIPT_UID 脚本 user ID,代理模式不可用 | 
| SCRIPT_USERNAME 脚本 user name,代理模式不可用 | 
| RESPONSE_BODY 响应体 | 
| RESPONSE_CONTENT_LENGTH 响应实体长度,单位bytes | 
| RESPONSE_CONTENT_TYPE 响应实体类型,仅仅在phase3可用 | 
| RESPONSE_HEADERS 响应头,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type 在代理模式中,阶段5可用 | 
| RESPONSE_HEADERS_NAMES 响应头参数的名字,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type 在代理模式中,阶段5可用 | 
| RESPONSE_PROTOCOL 响应协议 | 
| RESPONSE_STATUS 响应码,仅代理模式可用 | 
| TX  事件内变量, 类型read/write collection 当使用operator @rx或@pm时,TX:0表示capture action捕获的变量 TX:1-TX:9:表示capture action捕获的子串 | 
| RULE rule元数据, 类型read/write collection, 用于设置Rule对象的属性:id,rev,severity,logdata, msg | 
| SESSION session数据,类型read/write collection 仅当setsid action执行后使用, session对象的属性,SCORE得分, BLOCKED是否阻塞 | 
| GEO geo信息,类型read-only collection | 
| ENV 环境变量,类型read-only collection,但可以使用setvar来修改变量的值 | 
| GLOBAL 全局变量,类型read/write collection | 
| IP 存储的ip数据 ,类型read/write collection | 
| USER user数据,类型read/write collection | 
| XML xml dom相关的,类型read-only collection | 
| HIGHEST_SEVERITY 严重级别,值越小级别越高,255表示未设置严重级别 | 
| MATCHED_VAR 最近一次匹配的变量 | 
| MATCHED_VAR_NAME 最近一次匹配的变量的名字 | 
| MODSEC_BUILD modsecurity版本号 | 
| SESSION_ID sessionID | 
| USERID user ID | 
| WEBAPPID web app ID | 
| WEBSERVER_ERROR_LOG server产生的错误信息 | 
| TIME HH:mm:ss | 
| TIME_DAY 1-31 | 
| TIME_EPOCH | 
| TIME_HOUR 0-23 | 
| TIME_MIN 0-59 | 
| TIME_MON 0-11 | 
| TIME_SEC 0-59 | 
| TIME_WDAY 0-6 | 
| TIME_YEAR | 
| DURATION 时间花费,milliseconds | 
| MULTIPART_BOUNDARY_QUOTED multipart 解析错误:boudnary中有引号 | 
| MULTIPART_BOUNDARY_WHITESPACE multipart 解析错误:boudnary中有空格 | 
| MULTIPART_CRLF_LF_LINES multipart 解析错误:混合使用\r\n 与\n作为分界线, 当允许使用混合粉各符时设置为1 | 
| MULTIPART_DATA_BEFORE multipart 解析错误:第一个boudnary前有数据 | 
| MULTIPART_DATA_AFTER multipart 解析错误:最后一个boudnary后有数据 | 
| MUTLIPART_HEADER_FOLDING multipart 解析错误:boudnary中 | 
| MULTIPART_LF_LINE multipart 解析错误:使用\n作为分界线 | 
| MULTIPART_SEMICOLON_MISSIONG multipart 解析错误:缺少分号 | 
| MULTIPART_STRICT_ERROR 当以下值为1时,该值为1; REQBODY_PROCESSOR_ERROR MULTIPART_BOUNDARY_QUOTED MULTIPART_BOUNDARY_WHITESPACE MULTIPART_DATA_BEFORE MULTIPART_DATA_AFTER MULTIPART_HEADER_FOLDING MULTIPART_LF_LINE 使用换行做分界线 MULTPART_SEMICOLON_MISSING 分号缺失 MULTPART_INVALID_QUOTING 无效引号 | 
| MULTIPART_INVALID_QUOTING multipart 解析错误: 无效引号 | 
| MULTIPART_UNMATCHED_BOUDDARY multipart 解析错误:不合规范的boudnary,容易漏报 | 
| REQBODY_PROCESSOR 处理request解析,内置的解析功能包括URLENCODED, MULTIPART, XML | 
| REQBODY_PROCESSOR_ERROR request解析错误标记,1表示错误,0表示ok | 
| REQBODY_PROCESSOR_ERROR_MSG request解析错误信息 | 
| URLENCODED_ERROR 当解析application/x-www-form-urlencoded格式的请求体出错时值为1 | 
| ModSecurity | 
| @beginsWith | 
| @contains | 
| @containsWord | 
| @endsWith | 
| @rx | 
| @pm 特征字符串的匹配, 大小不敏感,基于Aho-Corasick匹配算法 | 
| @pmFromFile 从文件读取匹配特征字符串 | 
| @streq | 
| @within | 
| @eq | 
| @ge | 
| @gt | 
| @le | 
| @lt | 
| @validateByteRange | 
| @validateDTD XML相关 | 
| @validateSchema XML相关 | 
| @validateUrlEncoding | 
| @validateUtf8Encoding | 
| @geoLookup | 
| @inspectFile 使用外部脚本处理 | 
| @rbl 去RBL REAL-TIME BLANKHOLE LISTS反垃圾邮件黑名单里查找ipv4地址,或hostname | 
| @verifyCC | 
三、 事件函数transform function
| ModSecurity | 
| base64Decode | 
| base64Encode | 
| compressWhitespace | 
| cssDecode | 
| escapeSeqDecode 解码ANSI C escape 序列 | 
| hexDecode | 
| hexEncode | 
| htmlEntityDecode | 
| jsDecode | 
| length | 
| lowercase | 
| md5 | 
| none 移除当前rule的所有transformation functions | 
| normalizePath 移除掉多个斜杠 | 
| normalizePathWin 移除掉多个斜杠,但首先会将\(win正斜杠) 转化成 /(linux反斜杠) | 
| parityEven7bit | 
| parityOdd7bit | 
| parityZero7bit | 
| removeNulls 删除空字节 | 
| removeWhiteSpace 删除空格字符 | 
| replaceComments 将c格式的注视语句/*…*/转换为空格ASCII 32 | 
| replaceNulls 将null字节转换为空格ASCII 32 | 
| urlDecode | 
| urlDecodeUni url解码%uXXXX 编码范围FF01 -FF5E | 
| urlEncode | 
| sha1 | 
| trimLeft 移除左边的空格 | 
| trimeRight 移除右边的空格 | 
| trim 移除左右两端的空格 | 
| ModSecurity | 
| allow 2.5版本之前是只影响当前阶段 2.5版本之后,遵守以下规则 (1)如果单独使用,除了log阶段,其他阶段都停止处理 (2)如果和参数phase一起使用,allow将停止当前阶段的处理,其他阶段不受影响 | 
| block 相当于占位符,会被上下文的SecDefaultAction 指令中的动作取代 | 
| deny 使用错误页面block 当前事务 | 
| drop 断开网络连接 | 
| pass 继续执行下一个规则 | 
| proxy 代理请求到后端web server | 
| redirect 重定向请求到其他web server | 
| chain 相当于多个规则的and操作 | 
| skip 跳过指定的规则,值为跳过的规则个数,不能跳过同一个规则链中的规则 | 
| skipAfter 调转到指定的规则 | 
| id 设置规则ID | 
| phase 指明处理阶段 | 
| msg | 
| rev 设置版本号 | 
| severity 设置rule的严重级别,最好用文本来指定,v2.5.0版本已弃用 | 
| tag | 
| capture 将捕获结果存入TX变量,可以存储10个变量,tx变量集合的下标为0-9 | 
| deprecatevar 设置指定时间内递减数字型变量 | 
| expirevar 设置指定时间内移除过期的变量 | 
| initcol 创建持久性collections,通常在阶段1中设置 | 
| setenv 设置环境变量 | 
| setvar 设置变量 | 
| setuid 设置当前事务的user ID | 
| setsid 设置当前事务的session ID | 
| auditlog 将当前事务记录到log中 | 
| log | 
| logdata | 
| noauditlog | 
| nolog | 
| sanitiseArg 在日志中将指定的请求参数替换为* | 
| sanitiseMatched 在日志中将指定的请求参数,请求头,响应头替换为* | 
| sanitiseRequestHeader 在日志中将指定的请求头替换为* | 
| sanitiseResponseHeader 在日志中将指定的响应头替换为* | 
| ctl 改变当前事务的配置 可以改变以下配置  | 
| multiMatch 每次变量发生变化会进行一次匹配计算 | 
| t 在对变量作匹配操作前指定调用的事务处理函数 | 
| append 响应体中注入内容,该action必须开启SecContentInjection指令 | 
| exec 执行外部脚本或二进制文件 | 
| pause 暂定事务处理 | 
| prepend 响应体中注入内容,该action必须开启SecContentInjection指令 | 
| status action 为 deny与redirect action时指定响应码 | 
| xmlns XML专用 | 
五、指令directory
| ModSecurity | 
| SecRule | 
| SecRuleInheritance | 
| SecRuleRemoveById | 
| SecRuleRemoveByMsg | 
| SecRuleUpdateActionById 更新指定RuleID的rule action | 
| SecRuleScript | 
| SecMarker | 
| SecAction | 
| SecDefaultAction 设置默认的action | 
from:http://danqingdani.blog.163.com/blog/static/18609419520146296181531/
[security][modsecurity] modsecurity 规则说明/中文/转发的更多相关文章
- ModSecurity的规则
		一.ModSecurity的规则 基本格式 SecRule VARIABLES OPERATOR ACTIONS SecRule:ModSecurity主要的指令,用于创建安全规则. VARIABLE ... 
- 数据库SQLite在Qt5+VS2012使用规则总结---中文乱码
		VS2012默认格式为 "GB2312-80",而有时我们用到字符串需要显示中文时,就会出现乱码.下面仅就Qt5和VS2012中使用数据库SQLite时,做一个简单的备忘录 #in ... 
- Firefox火狐广告过滤插件Adblock Plus过滤规则包[中文维护小组]
		如果你经常使用Firefox火狐浏览器那么一定知道Adblock Plus这款广告过滤插件,功能非常强大,但是Adblock Plus广告过滤插件自带的过滤规则并不多,而且也不太适合我们中国的网站,在 ... 
- 双向最大匹配算法——基于词典规则的中文分词(Java实现)
		目录 一.中文分词理论描述 二.算法描述 1.正向最大匹配算法 2.反向最大匹配算法 3.双剑合璧 三.案例描述 四.JAVA实现完整代码 五.组装UI 六.总结 前言 这篇将使用Java实现基于规则 ... 
- modsecurity配置指令学习
		事务(transactions) Console(控制台) 1 Introduction Modsecurity是保护网络应用安全的工作.不,从零开始.我常称modsecurity为WAF(网络应用防 ... 
- ModSecurity CRS笔记[转]
		转自:http://danqingdani.blog.163.com/blog/static/186094195201472304841643/ ModSecurity的规则因为奇怪的正则(可读性差? ... 
- ModSecurity for Nginx
		Announcing the availability of ModSecurity extension for Nginx ModSecurity for Nginx ModSecurity for ... 
- 利用ModSecurity防御暴力破解
		利用ModSecurity防御暴力破解 from:http://www.freebuf.com/articles/web/8749.html 2013-04-18 共553248人围观 ,发现 12 ... 
- Centos7.4 modsecurity with nginx 安装
		1.准备: 系统环境:Centos7.4 软件及版本: nginx:OpenResty1.13.6.1 ModSecurity:ModSecurity v3.0.0rc1 (Linux) modsec ... 
随机推荐
- Fluent动网格【2】:Profile文件
			动网格中一个重要任务是部件运动方式的指定.在动网格中指定部件的运动,往往将部件的运动方式指定为其加速度.速度或位移与时间的相关关系,本文主要讲述如何在Fluent中利用瞬态Profile文件指定部件的 ... 
- java框架篇---Struts2 本地化/国际化(i18n)
			国际化(i18n)是规划和实施的产品和服务,使他们能很容易地适应特定的本地语言和文化的过程中,这个过程被称为本地化.国际化的过程有时也被称为翻译或本地化启用.国际化是缩写i18n,因为我和两端用n字打 ... 
- 批量 kill mysql 线程
			时常有一些烂sql跑在数据库里,我们要进行kill,避免影响拖垮数据库. mysql> show processlist; +----+------+---------------------+ ... 
- opencv之内存存储器——CvMemStorage与CvSeq
			1.CvMemStorage *storage=cvCreateMemStorage(block_size); 用来创建一个内存存储器,来统一管理各种动态对象的内存. 函数返回一个新创建的内存存储器指 ... 
- Java知多少(15)字符串
			从表面上看,字符串就是双引号之间的数据,例如“微学苑”.“http://www.weixueyuan.net”等.在Java中,可以使用下面的方法定义字符串: String stringName ... 
- DedeCMS中channelartlist自增参数global.itemindex
			在 dede:channelartlist 标签下,使用: {dede:global.itemindex runphp='yes'} {/dede:global.itemindex} dede:cha ... 
- 大杂烩 -- HashMap、HashTable、ConCurrentHashMap 联系与区别
			基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1. Hashtable 和 HashMap ⑴ ... 
- VMware Workstation11安装Mac OS X 10.10虚拟机
			原文:http://jingyan.baidu.com/article/3f16e003eac66e2591c103e0.html 优化:http://www.cnblogs.com/yipu/p/4 ... 
- 深入Java内存模型之阅读理解(2)
			锁的释放-获取建立的happens before 关系 锁是java并发编程中最重要的同步机制.锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息. 下面是锁释放-获取的示例代 ... 
- 【代码审计】XYHCMS V3.5文件上传漏洞分析
			0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ... 
