http - 为什么在这个 snort 规则中缺少 '.' 的 EOF
问题描述
我有一个想在 IDS 中导入的 snort 规则。
alert tcp any any -> any any (msg:"FOX-IT - Trojan - Possible CobaltStrike C2 Server";
flow:to_client;
content:"HTTP/1.1 200 OK |0d0a|"; fast_pattern; depth:18;
content:"Date: ";
pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
threshold:type limit, track by_dst, count 1, seconds 600;
classtype:trojan-activity; priority:2;
sid:21002217; rev:3;)
我得到错误:
验证失败:PCRE 令牌无效或不受支持:[...] 错误:不支持的 PCRE 语法:'.' 处缺少 EOF
当我从
pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
至
pcre:"/^HTTP 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/";
(所以删除/1.1
),它说语法是有效的。
我怎样才能解决这个问题?
解决方案
您的问题出在 HTTP 标头中:
/^HTTP/1.1 200...
PCRE 使用正斜杠分隔。你无意中在你的表情中留下了一个斜线。此外,你有一个点,你可能不是故意的。您将需要进行调整,例如:
/^HTTP\/1\.1 200...
推荐阅读
- javascript - 如何循环一个函数两次以上?
- python - 用scrapy刮问题
- csv - 如何在 Svelte 应用程序中使用 Axios 获取 CSV?
- mysql - Google App Script SQL 查询返回 bool 'True' 而不是 Int 值,但查询在 App Script 之外工作?
- flutter - 令人敬畏的 fcm 推送通知
- c# - 如何在不应对的情况下重用 XAML 组件及其“.cs”代码?
- python - 每次循环重新启动时,如何防止 for 循环擦除它的输出?
- python-3.x - 禁用 Matplotlib 图表的恒定位置重置
- asp.net-core - 级联参数Task是怎么做的
在 Blazor WASM 中的 AuthorizeView 和 AuthorizedRouteView 中解包并公开为“上下文”? - angular - 显示当前用户(Angular 和 Firebase)