2016-11-22 25 views
0

我想检测和使用Snort发送警报为以下Snort规则:检测请求abc.jsp和cookie值= NULL

1)请求/abc/abc.jsp和 2)的cookie ABC值为空

我尝试

警报TCP $ EXTERNAL_NET任何 - > $ HOME_NET $ HTTP_PORT(SID:XXX; GID:1,内容: “/ ABC/abc.php”; http_uri; PCRE:“ABC = '' “; msg:”BLACKLIST - 请求无cookie“;)

但似乎不起作用,请帮忙

+0

我改变如下,不能匹配警报tcp任何任何 - >任何任何(味精:“Imposter URI没有cookie”;内容: “/ ABC/abc.jsp”; http_uri; !内容: “ABC =”; HTTP_COOKIE; SID:1; ) – user3158049

回答

0

您的pcre内容未遵循正确的语法。您需要将内容放在正斜杠(/)之间。请参阅手册here。所以你的pcre选项应该如下所示:

pcre:"/abc=''/" 

我也会注意到这个pcre可能不足以满足你想要做的事情。我会做类似如下:

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

这将允许你寻找单引号和双引号因此这将符合以下任一操作:

ABC =“”
ABC =“”

另外加入C中的所述PCRE会告诉哼到的端部仅检查以下内容:
匹配归一化的HTTP请求或HTTP响应的cookie

由于它只检查规范化的cookie内容,因此效率更高且不易出现误报。 它也不太容易出现错误的否定,因为它检查cookie的规范化内容,因为如果cookie由于某种原因被编码为“%27”而且“将是%22并且pcre不匹配”。打鼾会检查标准化的有效载荷和将匹配

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

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 ";) 
0

Cookie的结构:name=value;

如果妳想要检测的cookie ABC值为空,使用模式abc=;

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