2016-11-22 53 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;)