🥉snort中的byte_test\extract\jump

type
status
date
slug
summary
tags
category
icon
password
最后编辑时间
Jul 9, 2025 07:27 AM
order
漏洞编号
Author

byte_test

参考:

取测试值与给定值进行运算操作,结果为true则命中

格式

其中:
byte_to_convert 从数据包取得的字节数 = 1-10
ps:不使用dce时可使用的值为1-10,使用dce时的值为1,2,4
operator 对测试值执行的操作 = < = > <= >= & ^ 也就是等于还是小于大于.....
value 与测试值进行比较的转换后的值 = 0-4294967295
offset 偏移量 = -65535-65535
relative 使用相对于上一个模式匹配的相对偏移
 
 

举个栗子

relative的作用是使用一个相对于上一个content的相对偏移量。即在上一个匹配到的|00 00 00 07|后面,偏移2个字节后,取其后4个字节转换成二进制与二进制的1000比较,匹配操作返回true,即命中。
 

byte_extract

取得一定长度的数据保存到一个变量中,以便在后续规则中使用,而不是使用硬编码值,一般与byte_test结合在一起

格式

byte_to_convert 从数据包取得的字节数
offset 偏移量
name 给取得的变量命名
relative 使用相对于上一个模式匹配的相对偏移

举个栗子

例如有tcp流中开头的hex转储数据如下(CVE-2016-8706)
其中,如果想要对 0x00200x00000001 两个变化的值进行比较(假定触发漏洞需要后者比前者值小),相对应的规则可以如此
byte_extractcontent之后偏移 0 个字节取 2 个字节的值,命名为keylen,此时keylen 的值为00 20 ,后续的byte_testbyte_extract 之后偏移 0 个字节取4个字节的值,即为00 00 00 01 ,判断 < 逻辑成立,结果为true,规则命中。
 

byte_jump

取对应偏移位置上的值,跳过payload中对应该值数目的字节
Loading...

没有找到文章