d77_52558522 2024-03-28 16:44 采纳率: 33.3%
浏览 3

snort规则如何对content内容精确匹配,如何正确结合content和正则表达式?

alert tcp any any -> 192.168.19.132 80 (msg: "Possible attack"; flow:to_server; sid:100000012; content:"1",nocase; )
alert tcp any any -> 192.168.19.132 80 (msg: "Possible attack"; flow:to_server; sid:100000013; content:"1%27",nocase;)

如上两条snort规则,在实际进行检测时,如果检测到 1%27 会同时触发content为1 和 1%27的警报,无法实现对content的内容的长度、字符等方面的完全精确匹配,可以通过修改snort规则中的content字段来精确匹配内容吗,比如改成正则表达?

我试过把content“1”改成“^1$”,但是不正确,无法检测出“1”了

alert tcp any any -> 192.168.19.132 80 (msg: "Possible attack"; flow:to_server; sid:100000012; content:"^1$";nocase ;)
  • 写回答

1条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-03-28 16:44
    关注

    d77_52558522 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    要对content内容进行精确匹配,可以结合使用content和正则表达式的方式来处理。下面是针对你的问题的解决方案:

    1. 当content内容为"1"时,使用nocase选项表示不区分大小写,会匹配到所有"1"字符的出现。如果你想要实现对content内容大小写的精确匹配,可以在content前使用rawbytes选项,如下所示:
    alert tcp any any -> 192.168.19.132 80 (msg: "Possible attack"; flow:to_server; sid:100000012; rawbytes; content:"1";)
    
    1. 当content内容为"1%27"时,使用nocase选项会匹配到所有包含"1%27"的字符串。如果你想要匹配到"1%27"这个准确值,可以使用rawbytes和pcre选项结合使用,如下所示:
    alert tcp any any -> 192.168.19.132 80 (msg: "Possible attack"; flow:to_server; sid:100000013; rawbytes; pcre:"/1%27/";)
    

    综上所述,要实现对content内容的精确匹配,可以使用以下方法: 1.对于纯文本的匹配,使用rawbytes选项结合content字段即可; 2.对于包含特殊字符或需要进一步匹配的内容,可以使用rawbytes和pcre选项结合正则表达式来处理。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月28日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示