Snort规则中的逻辑关系

0x01

看一条规则
alert tcp any any -> any any (content:"union";http_uri;nocase;content:"select":nocase;http_uri;)
下面这两条会触发哪一条?
http://foo.com?id=union select
http://foo.com?id=select union
实验结果是都会触发。
这个实验说明content如果不加distance之类的修饰符的话,多个content匹配是没有顺序的。

0x02

再看一条规则
alert tcp any any -> any any (content:"union";http_uri;nocase;content:"select":nocase;http_uri; pcre:"/union\s+(all\s+)?select\s+/Ui";)
还是这两条规则:
http://foo.com?id=union select
http://foo.com?id=select union
实验结果是只会触发第一条。
这说明,不同关键词之间(比如content和pcre)是“逻辑与”的关系。

0x03

最后一条规则
alert tcp any any -> any any (content:"union";http_uri;nocase;content:"s3l3ct":nocase;http_uri; pcre:"/union\s+(all\s+)?select\s+/Ui";)
发现上面两条都匹配不到了,说明所有关键词之间都是“逻辑与”的关系。

文/小天是我见过最单纯善良的人(简书作者)
原文链接:http://www.jianshu.com/p/9d11a3e039e9
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

时间: 2024-10-08 06:29:19

Snort规则中的逻辑关系的相关文章

snort规则中tcp/udp端口的具体作用

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"NETBIOS DCERPC NCACN-IP-TCP trend-serverprotect Trent_req_num_30010 overflow attempt"; flow:established,to_server;sid:12335; rev:15;) 如上所示一条snort规则,tcp中的端口分为两种,保留端口和非保留端口              保留端口就是小

wemall app商城源码中基于JAVA的T绑定和处理fragments和viewpager之间的逻辑关系代码

wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中关于为ViewPager添加布局(Fragment),绑定和处理fragments和viewpager之间的逻辑关系,供技术员参考学习. package com.inuoer.util; import java.util.List; import android.support.v4.app.Fra

非关系型数据库中的「关系」实现

Knowledge Dependence:阅读文本前,你需要了解基本的关系型数据库与非关系型(NoSQL)数据库的概念和区别,以及 MongoDB(Mongoose)的简单实践. ? 这两三年来,伴随着大数据(Big Data)的空前火热,无论是在工程界还是科研界,非关系型数据库(NoSQL)都已经成为了一个热门话题. 相比于传统的关系型数据库,非关系型数据库天生从理念上就给数据存储提供了一种新的思路.而在实际应用中,它往往更轻巧灵活.扩展性高,并且更能胜任高性能.大数据量的场景. 值得一提的是

Neutron与Nova的网络逻辑关系

在开始讲Neutron与Nova的网络关系前,先理解一下Openvswitch是两个模块组件中,特别重要的网络通讯模块了,而Openvswitch主要为管理Linux bridge及接口,了解Linux Bridge是学习Neutron很重要的一部份,下面我带着一个平台中的两个节点(Neutron和Nova)去理解Neutron和Nova的网络逻辑关系: 1.通过以下Vxlan的逻辑图,去理解每个节点中,到底存在些什么组件与接口 2.通过以上图,先从计算节点(Nova)入手,通过使用相关命令去查

js中的逻辑或和逻辑与

a=''||'abc';                              //返回什么?  'abc' a=1||2;                                  //返回什么?   1 var a=0; var b=++a||++a ;        //a=1;b=1; b=''&&'abc'                             //返回什么?  ’‘ b=1&&2                          

类图中的六种关系

一.首先来罗列一下这六种关系都有什么 1.泛化(Generalization) 2. 实现(Realization) 3. 关联(Association) 4. 聚合(Aggregation) 5. 组合/合成(Composition) 6. 依赖(Dependency) 各种关系的强弱顺序: 泛化 = 实现 > 组合/合成 > 聚合 > 关联 > 依赖 有些版本将泛化和实现统称为一般化关系 二.详细说一下这六种关系 1.泛化(Generalization) [泛化关系]: 是一种

linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)

Shell 脚本基础 1.变量 什么是变量 #a=1 # echo $a 1 变量:可以变化的量 1.2变量名称注意事项 变量名不能以数字开头 不能与系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要使用"_"下划线开头 最好做到见名知意 不能使用程序中的保留字,列如if,for等 1.3变量类型 字符型 数值型 整型浮点型 布尔型 条件是和否 #$echo $a 引用 abc 撤销 unset +(变量名)a 1.4变量操作 * 设置变量 * 引用变量 * 撤销变量 单引号和双

《说话也是可以运算的,这是真的吗?》之3:逻辑关系之合或否

上篇文章,已经介绍了如何把话符号化,今天讲讲话的逻辑关系.我们常常会听到: "某某讲的话是不对的." "某某做事又快又好." "双休日我们去杭州或者苏州." 话很简单,里面却包含着可以运算的逻辑关系. "某某讲的话是不对的."可以推理为某某的话,结论是不成立的. "某某做事又快又好."可以推理为某某做事只有同时具备快和好时,结论才成立. "双休日我们去杭州或者苏州."可以推理为双休日我们

Spring中的事务与数据库中的锁关系

本文只先简单的介绍下Spring中的事务与DB中锁的关系. 首先总结:Spring事务的实现本质上是使用的DB中的事务,而DB中的事务实现又主要依靠DB中的锁.所以spring事务本质上使用数据库锁,开启spring事务意味着使用数据库锁. 所以大家一定要厘清DB事务与DB各种锁的原理与概念.后续我也研究一下DB锁,并结合具体的生产环境监控数据来谈谈. <以下是转载部分内容.主要是Spring事务的使用方式.隔离级别之类的> 那么事务的隔离级别与锁有什么关系呢?本人认为事务的隔离级别是通过锁的