http_client_body
将检测光标设置到 HTTP 请求的正文时。当 HTTP 消息未指定 HTTP 标头时,Snort 会使用 URI 规范化对 http_client_body
进行规范化。URI 规范化通常应用于 http_header
。
语法: http_client_body;
示例: http_client_body;
http_cookie
将检测光标设置为提取的 HTTP Cookie
信头字段。 http_cookie
规则选项包括以下参数: http_cookie.request
、 http_cookie.with_header
、 http_cookie.with_body
和 http_cookie.with_trailer
。
语法: http_cookie:<parameter> 、<parameter>
示例: http_cookie: request;
http_cookie.request
匹配在 HTTP 请求消息中找到的 HTTP cookie。检查 HTTP 响应时,请使用 HTTP 请求 cookie。 http_cookie.request
参数是可选参数。
语法: http_cookie:request;
示例: http_cookie: request;
http_cookie.with_header
指定规则只能检查 HTTP 消息信头。http_cookie.with_header
参数是可选的。
语法: http_cookie:with_header;
示例: http_cookie:with_header;
http_cookie.with_body
指定规则的其他部分而不是 http_cookie
规则选项检查 HTTP 消息正文。 http_cookie.with_body
参数是可选的。
语法: http_cookie:with_body;
示例: http_cookie:with_body;
http_cookie.with_trailer
指定由规则的其他部分而不是 http_cookie
规则选项检查 HTTP 消息报尾。http_cookie.with_trailer
参数是可选的。
语法: http_cookie:with_trailer;
示例: http_cookie:with_trailer;
http_header
将检测光标设置为规范化 HTTP 信头。您可以使用 Field
选项指定单个信头名称。
http_header
规则选项包括以下参数: http_header.field
、 http_header.request
、 http_header.with_header
、 http_header.with_body
和 http_header.with_trailer
。
语法: http_header: field<field_name> 、<parameter> 、<parameter>
示例: http_header: Field Content-Type, with_trailer;
http_header.field
将指定信头名称与规范化 HTTP 信头进行匹配。信头名称不区分大小写。如果不指定信头名称,HTTP 检查器将检查除 HTTP Cookie 信头(Cookie
和 Set-Cookie
)之外的所有信头。
类型: 字符串
语法: http_header: field <field_namer>;
有效值: HTTP 信头名称。
示例: http_header: Field Content-Type;
http_header.request
匹配 HTTP 请求中找到的信头。检查 HTTP 响应时使用 HTTP 请求信头。http_header.request
参数是可选参数。
语法: http_header: request;
示例: http_header: request;
http_header.with_header
指定规则只能检查 HTTP 消息信头。 http_header.with_header
参数是可选的。
语法: http_header:with_header;
示例: http_header: with_header;
http_header.with_body
指定规则的其他部分而不是 http_header
规则选项检查 HTTP 消息正文。 http_header.with_body
参数是可选的。
语法: http_header:with_body;
示例: http_header:with_body;
http_header.with_trailer
指定由规则的另一部分而不是 http_header
规则选项检查 HTTP 消息报尾。http_header.with_trailer
参数是可选的。
语法: http_header:with_trailer;
示例: http_header: with_trailer;
http_method
将检测光标设置为 HTTP 请求的方法。常见的 HTTP 请求方法值为 GET
、 POST
、 OPTIONS
、 HEAD
、 DELETE
、 PUT
、 TRACE
和 CONNECT
。
http_method
规则选项包括参数: http_method.with_header
、 http_method.with_body
和 http_method.with_trailer
。
语法: http_method: <parameter> 、<parameter>;
示例: http_method; content:"GET";
http_method.with_header
指定规则只能检查 HTTP 消息信头。 http_method.with_header
参数是可选的。
语法: http_method:with_header;
示例: http_method:with_header;
http_method.with_body
指定规则的其他部分而不是 http_header
规则选项检查 HTTP 消息正文。http_method.with_body
参数是可选的。
语法: http_method:with_body;
示例: http_method:with_body;
http_method.with_trailer
指定由规则的另一部分而不是 http_header
规则选项检查 HTTP 消息报尾。 http_method.with_trailer
参数是可选的。
语法: http_method:with_trailer;
示例: http_method:with_trailer;
http_param
将检测光标设置为指定的 HTTP 参数键。HTTP 参数密钥可能会显示在查询或请求正文中。
http_param
规则选项包括参数: http_param.param
和 http_method.no Case
。
语法: http_param:<parameter_key> 、no Case;
示例: http_param: offset, noase;
http_param.param
匹配指定的参数。
类型: 字符串
语法: http_param:<http_parameter>;
有效值: 请求查询参数或请求正文字段。
示例: http_param: offset;
http_param.nocase
匹配指定参数,但不考虑大小写。http_param.nocase
参数是可选的。
语法: http_param: no Case;
示例: http_param: noase;
http_raw_body
将检测光标设置为未规范化请求或响应消息正文。
语法: http_raw_body;
示例: http_raw_body;
http_raw_cookie
将检测光标设置为非规范化 HTTP Cookie
信头。 http_raw_cookie
规则选项包括以下参数: http_raw_cookie.request
、 http_raw_cookie.with_header
、 http_raw_cookie.with_body
和 http_raw_cookie.with_trailer
。
语法: http_raw_cookie: <parameter>;
示例: http_raw_cookie: request;
http_raw_cookie.request
匹配在 HTTP 请求中找到的 cookie。检查响应消息时,请使用 HTTP 请求 cookie。 http_raw_cookie.request
参数是可选参数。
语法: http_raw_cookie: request;
示例: http_raw_cookie: request;
http_raw_cookie.with_header
指定规则只能检查 HTTP 消息信头。 http_raw_cookie.with_header
参数是可选的。
语法: http_raw_cookie:with_header;
示例: http_raw_cookie:with_header;
http_raw_cookie.with_body
指定规则的其他部分而不是 http_raw_cookie
规则选项检查 HTTP 消息正文。http_raw_cookie.with_body
参数是可选的。
语法: http_raw_cookie:with_body;
示例: http_raw_cookie:with_body;
http_raw_cookie.with_trailer
指定由规则的另一部分而不是 http_raw_cookie
规则选项检查 HTTP 消息报尾。http_raw_cookie.with_trailer
参数是可选的。
语法: http_raw_cookie:with_trailer;
示例: http_raw_cookie:with_trailer;
http_raw_header
将检测光标设置为非规范化信头。 http_raw_header
包含原始消息中所有未经修改的信头名称和值。
http_raw_header
规则选项包括以下参数: http_raw_header.field
、 http_raw_header.request
、 http_raw_header.with_header
、 http_raw_header.with_body
和 http_raw_header.with_trailer
。
语法: http_raw_header:field<field_name> 、<parameter> 、<parameter>;
示例: http_raw_header: Field Content-Type, with_trailer;
http_raw_header.field
将指定信头名称与非规范化 HTTP 信头进行匹配。信头名称不区分大小写。如果不指定信头名称,HTTP 检查器将检查除 HTTP Cookie 信头(Cookie 和 Set-Cookie)以外的所有信头。
类型: 字符串
语法: http_raw_header: field <field_name>
有效值: HTTP 信头名称。
示例: http_raw_header: Field Content-Type;
http_raw_header.request
匹配 HTTP 请求消息中的找到的信头。检查响应消息时,请使用 HTTP 请求信头。http_raw_header.request
参数是可选参数。
语法: http_raw_header: request;
示例: http_raw_header: request;
http_raw_header.with_header
指定规则只能检查 HTTP 消息信头。http_raw_header.with_header
参数是可选的。
语法: http_raw_header:with_header;
示例: http_raw_header: with_header;
http_raw_header.with_body
指定规则的其他部分而不是 http_raw_header
规则选项检查 HTTP 消息正文。 http_raw_header.with_body
参数是可选的。
语法: http_raw_header:with_body;
示例: http_raw_header:with_body;
http_raw_header.with_trailer
指定由规则的另一部分而不是 http_raw_header
规则选项检查 HTTP 消息报尾。 http_raw_header.with_trailer
参数是可选的。
语法: http_raw_header:with_trailer;
示例: http_raw_header: with_trailer;
http_raw_request
将检测光标设置为非规范化请求行。要检查第一个信头行的特定部分,请使用以下规则选项之一: http_method
、 http_raw_uri
或 http_version
。
http_raw_request
规则选项包括参数: http_raw_request.with_header
、 http_raw_request.with_body
和 http_raw_request.with_trailer
。
语法: http_raw_request: <parameter>, <parameter>;
示例: http_raw_request:with_header;
http_raw_request.with_header
指定规则只能检查 HTTP 消息信头。 http_raw_request.with_header
参数是可选的。
语法: http_raw_request:with_header;
示例: http_raw_request:with_header;
http_raw_request.with_body
指定规则的其他部分而不是 http_raw_request
规则选项检查 HTTP 消息正文。 http_raw_request.with_body
参数是可选的。
语法: http_raw_request:with_body;
示例: http_raw_request:with_body;
http_raw_request.with_trailer
指定由规则的其他部分而不是 http_raw_request
规则选项检查 HTTP 消息报尾。 http_raw_request.with_trailer
参数是可选的。
语法: http_raw_request:with_trailer;
示例: http_raw_request: with_trailer;
http_raw_status
将检测光标设置为非规范化状态行。要检查状态行的特定部分,请使用以下规则选项之一: http_version
、 http_stat_code
或 http_stat_msg
。
http_raw_status
规则选项包括以下参数: http_raw_status.with_body
和 http_raw_status.with_trailer
。
语法: http_raw_status: <parameter>, <parameter>;
示例: http_raw_status:with_body;
http_raw_status.with_body
指定由规则的其他部分而不是 http_raw_status
规则选项检查 HTTP 消息正文。http_raw_status.with_body
参数是可选的。
语法: http_raw_status:with_body;
示例: http_raw_status:with_body;
http_raw_status.with_trailer
指定由规则的另一部分而不是 http_raw_status
规则选项检查 HTTP 消息报尾。 http_raw_status.with_trailer
参数是可选的。
语法: http_raw_status:with_trailer;
示例: http_raw_status: with_trailer;
http_raw_trailer
将检测光标设置为非规范化 HTTP 报尾。报尾包含有关消息内容的信息。当客户端请求创建 HTTP 报头时,报尾不可用。
http_raw_trailer
与 http_raw_header
相同,但前者适用于结束信头。您必须创建单独的规则来检测 HTTP 信头和报尾。
http_raw_trailer
规则选项包括以下参数: http_raw_trailer.field
、 http_raw_trailer.request
、 http_raw_trailer.with_header
、 http_raw_trailer.with_body
。
语法: http_raw_trailer: field <field_name>, <parameter>, <parameter>;
示例: http_raw_trailer: field <field_name>, request;
http_raw_trailer.field
将指定报尾名称与非规范化 HTTP 报尾进行匹配。报尾名称不区分大小写。
类型: 字符串
语法: http_raw_trailer: field <field_name>;
有效值: HTTP 报尾名称。
示例: http_raw_trailer:field trail-timestamp;
http_raw_trailer.request
匹配 HTTP 请求消息中找到的报尾。在检查响应消息时,请使用 HTTP 请求报尾。http_raw_trailer.request
参数是可选参数。
语法: http_raw_trailer: request;
示例: http_raw_trailer: request;
http_raw_trailer.with_header
指定规则只能检查 HTTP 响应信头。 http_raw_trailer.with_header
参数是可选的。
语法: http_raw_trailer:with_header;
示例: http_raw_trailer: with_header;
http_raw_trailer.with_body
指定由规则的其他部分(而不是 http_raw_trailer
规则选项)检查 HTTP 响应消息正文。http_raw_trailer.with_body
参数是可选的。
语法: http_raw_trailer:with_body;
示例: http_raw_trailer:with_body;
http_raw_uri
将检测光标设置为非规范化 URI。
http_raw_uri
规则选项包括:
语法: http_raw_uri: <parameter>, <parameter>;
示例: http_raw_uri: with_header, path, query;
http_raw_uri.with_header
指定规则只能检查 HTTP 消息信头。 http_raw_uri.with_header
参数是可选的。
语法: http_raw_uri:with_header;
示例: http_raw_uri:with_header;
http_raw_uri.with_body
指定规则的其他部分检查 HTTP 消息正文,而不是由 http_raw_uri
规则选项检查。 http_raw_uri.with_body
参数是可选的。
语法: http_raw_uri:with_body;
示例: http_raw_uri:with_body;
http_raw_uri.with_trailer
指定由规则的另一部分而不是 http_raw_uri
规则选项检查 HTTP 消息报尾。 http_raw_uri.with_trailer
参数是可选的。
语法: http_raw_uri:with_trailer;
示例: http_raw_uri:with_trailer;
http_raw_uri.scheme
仅根据 URI 方案进行匹配。 http_raw_uri.scheme
参数是可选的。
语法: http_raw_uri:scheme;
示例: http_raw_uri:scheme;
http_raw_uri.host
仅根据 URI 的主机(域名)匹配。 http_raw_uri.host
参数是可选的。
语法: http_raw_uri: host;
示例: http_raw_uri: host;
http_raw_uri.port
仅根据 URI 的端口(TCP 端口)匹配。 http_raw_uri.port
参数是可选的。
语法: http_raw_uri: port;
示例: http_raw_uri: port;
http_raw_uri.path
仅匹配 URI 的路径部分(目录和文件)。 http_raw_uri.path
参数是可选的。
语法: http_raw_uri: path;
示例: http_raw_uri: path;
http_raw_uri.query
仅匹配 URI 中的查询参数。 http_raw_uri.query
参数是可选的。
语法: http_raw_uri: query;
示例: http_raw_uri:query;
http_raw_uri.fragment
仅匹配 URI 的分片部分。分段是所请求文件的一部分,通常仅在浏览器内找到,而不通过网络进行传输。 http_raw_uri.fragment
参数是可选的。
语法: http_raw_uri: fragment;
示例: http_raw_uri: fragment;
http_stat_code
将检测光标设置为 HTTP 状态代码。HTTP 状态代码是一个介于 100 - 599 之间的三位数字。
http_stat_code
规则选项包括以下参数: http_stat_code.with_body
和 http_stat_code.with_trailer
。
语法: http_stat_code: <parameter>, <parameter>;
示例: http_stat_code: with_trailer;
http_stat_code.with_body
指定由规则的其他部分而不是 http_stat_code
规则选项检查 HTTP 消息正文。 http_stat_code.with_body
参数是可选的。
语法: http_stat_code:with_body;
示例: http_stat_code:with_body;
http_stat_code.with_trailer
指定由规则的另一部分而不是 http_stat_code
规则选项检查 HTTP 消息报尾。 http_stat_code.with_trailer
参数是可选的。
语法: http_stat_code:with_trailer;
示例: http_stat_code: with_trailer;
http_stat_msg
将检测光标设置至 HTTP 状态消息。HTTP 状态消息以纯文本描述 HTTP 状态代码,例如: 正常
。
http_stat_msg
规则选项包括参数: http_stat_msg.with_body
和 http_stat_msg.with_trailer
。
语法: http_stat_msg: <parameter>, <parameter>;
示例: http_stat_msg: with_body;
http_stat_msg.with_body
指定由规则的其他部分而不是 http_stat_msg
规则选项检查 HTTP 消息正文。 http_stat_msg.with_body
参数是可选的。
语法: http_stat_msg:with_body;
示例: http_stat_msg: with_body;
http_stat_msg.with_trailer
指定由规则的另一部分而不是 http_stat_msg
规则选项检查 HTTP 消息报尾。 http_stat_msg.with_trailer
参数是可选的。
语法: http_stat_msg: with_trailer;
示例: http_stat_msg: with_trailer;
http_trailer
将检测光标设置为规范化报尾。报尾包含有关消息内容的信息。当客户端请求创建 HTTP 报头时,报尾不可用。
http_trailer
与 http_header
相同,不同之处在于 http_trailer 适用于结束信头。您必须创建单独的规则来检测 HTTP 信头和报尾。
http_trailer
规则选项包括以下参数: http_trailer.field
、 http_trailer.request
、 http_trailer.with_header
、 http_trailer.with_body
。
语法: http_trailer: field <field_name>, <parameter>, <parameter>;
示例: http_trailer: Field trail-timestamp, with_body;
http_trailer.field
将指定报尾名称与规范化 HTTP 报尾进行匹配。报尾名称不区分大小写。
类型: 字符串
语法: http_trailer: field <field_name>;
有效值: HTTP 报尾名称。
示例: http_trailer:field trail-timestamp;
http_trailer.request
匹配 HTTP 请求消息中找到的报尾。在检查响应消息时,请使用 HTTP 请求报尾。 http_trailer.request
参数是可选参数。
语法: http_trailer: request;
示例: http_trailer: request;
http_trailer.with_header
指定由规则的其他部分检查 HTTP 消息信头,而不是由 http_trailer
规则选项检查。 http_trailer.with_header
参数是可选的。
语法: http_trailer:with_header;
示例: http_trailer: with_header;
http_trailer.with_body
指定规则的其他部分而不是 http_trailer
规则选项检查 HTTP 消息正文。 http_trailer.with_body
参数是可选的。
语法: http_trailer:with_body;
示例: http_trailer:with_body;
http_true_ip
将检测光标设置为最终客户端 IP 地址。当客户端发送请求时,代理服务器将存储最终的客户端 IP 地址。客户端 IP 地址是 X-Forwarded-For
、 True-Client-IP
或任何其他自定义 X-Forwarded-For
类型报头中列出的最后一个 IP 地址。如果存在多个信头,Snort 会考虑 xff_headers
中定义的信头。
http_true_ip
规则选项包括以下参数: http_true_ip.with_header
、 http_true_ip.with_body
和 http_true_ip.with_trailer
。
语法: http_true_ip: <parameter>, <parameter>;
示例: http_true_ip:with_header;
http_true_ip.with_header
指定规则只能检查 HTTP 消息信头。 http_true_ip.with_header
参数是可选的。
语法: http_true_ip:with_header;
示例: http_true_ip:with_header;
http_true_ip.with_body
指定规则的其他部分而不是 http_true_ip
规则选项检查 HTTP 消息正文。 http_true_ip.with_body
参数是可选的。
语法: http_true_ip:with_body;
示例: http_true_ip:with_body;
http_true_ip.with_trailer
指定由规则的另一部分而不是 http_true_ip
规则选项检查 HTTP 消息报尾。 http_true_ip.with_trailer
参数是可选的。
语法: http_true_ip:with_trailer;
示例: http_true_ip:with_trailer;
http_uri
将检测光标设置为规范化 URI 缓冲区。
-
http_uri.with_header
-
http_uri.with_body
-
http_uri.with_trailer
-
http_uri.scheme
-
http_uri.host
-
http_uri.port
-
http_uri.path
-
http_uri.query
-
http_uri.fragment
语法: http_uri: <parameter>, <parameter>;
示例: http_uri:with_trailer,path,query;
http_uri.with_header
指定规则只能检查 HTTP 消息信头。 http_uri.with_header
参数是可选的。
语法: http_uri:with_header;
示例: http_uri:with_header;
http_uri.with_body
指定规则的其他部分检查 HTTP 消息正文,而不是检查 http_uri
规则选项。 http_uri.with_body
参数是可选的。
语法: http_uri:with_body;
示例: http_uri:with_body;
http_uri.with_trailer
指定由规则的另一部分而不是 http_uri
规则选项检查 HTTP 消息报尾。 http_uri.with_trailer
参数是可选的。
语法: http_uri:with_trailer;
示例: http_uri:with_trailer;
http_uri.scheme
仅根据 URI 方案进行匹配。 http_uri.scheme
参数是可选的。
语法: http_uri:scheme;
示例: http_uri:scheme;
http_uri.host
仅根据 URI 的主机(域名)匹配。 http_uri.host
参数是可选的。
语法: http_uri: host;
示例: http_uri: host;
http_uri.port
仅根据 URI 的端口(TCP 端口)匹配。 http_uri.port
参数是可选的。
语法: http_uri: port;
示例: http_uri: port;
http_uri.path
仅匹配 URI 的路径(目录和文件)。 http_uri.path
参数是可选的。
语法: http_uri: path;
示例: http_uri: path;
http_uri.query
仅匹配 URI 中的查询参数。http_uri.query
参数是可选的。
语法: http_uri: uri;
示例: http_uri: query;
http_uri.fragment
仅匹配 URI 的分片部分。分段是所请求文件的一部分,通常仅在浏览器内找到,而不通过网络进行传输。 http_uri.fragment
参数是可选的。
语法: http_uri: fragment;
示例: http_uri: fragment;
http_version
将检测光标设置为 HTTP 版本缓冲区的开头。 http_version
接受各种 HTTP 版本。最常见的版本为: HTTP/1.0
和 HTTP/1.1
。 http_version
规则选项包括参数: http_version.request
、 http_version.with_header
、 http_version.with_body
和 http_version.with_trailer
。
语法: http_version: <parameter>, <parameter>;
示例: http_version; content:"HTTP/1.1";
http_version.request
与 HTTP 请求中的版本相匹配。检查响应消息时,请使用请求版本。 http_version.request
参数是可选参数。
语法: http_version: request;
示例: http_version: request;
http_version.with_header
指定规则只能检查 HTTP 消息信头。 http_version.with_header
参数是可选的。
语法: http_version:with_header;
示例: http_version:with_header;
http_version.with_body
指定规则的其他部分检查 HTTP 消息正文,而不是由 http_version
规则选项检查。 http_version.with_body
参数是可选的。
语法: http_version:with_body;
示例: http_version:with_body;
http_version.with_trailer
指定由规则的另一部分检查 HTTP 消息报尾,而不是由 http_version
规则选项检查。 http_version.with_trailer
参数是可选的。
语法: http_version:with_trailer;
示例: http_version:with_trailer;
http_version_match
指定要针对标准 HTTP 版本进行匹配的 HTTP 版本列表。使用空格字符分隔多个版本。HTTP 请求或状态行可能包含版本。如果版本存在,Snort 会将此版本与 http_version_match
中指定的列表进行比较。
如果版本不是 [0-9].[0-9]
格式,则会被视为格式错误。 采用 [0-9].[0-9]
格式(非 1.0
或 1.1)
的版本被视为 其他
。
类型: 字符串
语法: http_version_match: <version_list>
有效值: 1.0、1.1、2.0、0.9、其他、格式错误
示例: http_version_match: "1.0 1.1";
js_data
将检测光标设置为规范化的 JavaScript 数据。此选项特定于增强型 JavaScript 规范器。
语法: js_data;
示例: js_data;
vba_data
将检测光标设置为 Microsoft Office Visual Basic for Applications 宏缓冲区。
语法: vba_data;
示例: vba_data;