Snort规则:检测请求abc.jsp和cookie value = null



我想检测和发送警报以:

request /abc/abc.jsp and
cookie abc value is null

我尝试了:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORT (sid:xxx; gid:1; content:"/abc/abc.php"; http_uri; pcre:"abc=''"; msg:"BLACKLIST - request without cookie ";)

,但似乎不起作用...

您的PCRE内容未遵循正确的语法。您需要将内容放在前斜线之间(/)之间。在这里查看手册。因此,您的PCRE选项应该如下:

pcre:"/abc=''/"

我还要注意,此PCRE可能不足以完成您想做的事情。我会做以下类似的事情:

pcre:"/abc=('|")(1)/C"

这将允许您同时查找单引号,因此这将匹配以下任何一个:

abc =''
ABC ="

还在PCRE的末尾添加C,将告诉Snort仅检查以下内容:
匹配归一化的HTTP请求或HTTP响应cookie

它更有效且易于假阳性,因为它仅检查归一化的cookie含量。它也不太容易出现虚假负面因素,因为它正在检查cookie的归一化内容,因为如果cookie出于某种原因编码了cookie,则为%27,并且"将为%22,而PCRE则不匹配。给C选项Snort将检查归一化有效载荷并将匹配。

因此您的最终规则可能看起来像:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORT (sid:xxx; gid:1; content:"/abc/abc.php"; http_uri; pcre:"/abc=('|")(1)/C"; msg:"BLACKLIST - request without cookie ";)

cookie结构: name=value;

如果您想检测cookie abc值为null,请使用模式abc=;

alert tcp any any -> any any (msg:"test-cookie"; content:"abc=;"; http_cookie; nocase;)

最新更新