-
Notifications
You must be signed in to change notification settings - Fork 80
/
poc-rule.yaml
70 lines (67 loc) · 5.09 KB
/
poc-rule.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
###
### POC可以配置的所有内容
###
info: # 基本信息部分POC的编写者可以任意进行修改。
author: test # 编写者
name: test # 规则名称
description: test # 规则描述
time: 2022/10/20 # 编写(修改)时间
note: test # 备注信息
reference: # 相关信息
- test
mutate_rule: # 数组值,可以有多组,它们之间是And关系。
-
mutate_position: # 变异位置,表示你选择哪些位置进行变异
header_all: false # 布尔值,表示是否对http的所有header进行变异。
header_filter: # 数组值,可以通过参数名称或者参数值筛选你想要变异的http header,
-
args: # 整数,只能取1或2,分别表示参数名称,参数值。
operator: # 整数,只能取1或2,分别表示正则匹配,字符串相等
value: # 字符串,你想筛选的值
body_all_leaf_argname: false # 布尔值,表示是否对body中所有叶子结点的参数名进行变异
body_all_leaf_argvalue: false # 布尔值,表示是否对body中所有叶子结点的参数值进行变异
body_leaf_add_node: # 数组值,表示body新增叶子节点
-
argname: # 字符串,表示参数名
argvalue: # 字符串,表示参数值
body_root_add_node: # 数组值,表示在body的根节点下面直接新增子节点
-
argname: # 字符串,表示参数名
argvalue: # 字符串,表示参数值
body_filter: # 数组值,可以通过参数名称或者参数值筛选你想要变异的body节点
-
args: # 整数,只能取1或2,分别表示参数名称,参数值。
operator: # 整数,只能取1或2,分别表示正则匹配,字符串相等
value: # 字符串,你想筛选的值
body_str: false # 布尔值,表示是否对body字符串整体进行操作
method: false # 布尔值,表示是否对method进行操作
netloc: false # 布尔值,表示是否对url中网络位置部分进行操作
path: false # 布尔值,表示是否对进行操作
query_str: # 布尔值,表示是否对query整体进行操作
url: # 布尔值,表示是否对整个url进行操作,指的是HTTP报文中不含有协议和域名的URL
query_leaf_argname: # 布尔值,表示是否对所有的query参数名进行操作
query_leaf_argvalue: # 布尔值,表示是否对所有的query参数值进行操作
query_add_node: # 数组值,表示query新增的子节点
-
argname: # 字符串,表示参数名
argvalue: # 字符串,表示参数值
query_filter: # 数组值,可以通过参数名称或者参数值筛选你想要变异的query节点
-
args: # 整数,只能取1或2,分别表示参数名称,参数值。
operator: # 整数,只能取1或2,分别表示正则匹配,字符串相等
value: # 字符串,你想筛选的值
mutate_way: # 数组值,变异方式。表示对你选择的变异位置进行变异的方式
-
pos: # 整数,只能取1,2,3其中一个,分别表示插入末尾,插入随机位置以及替换
value: # 字符串,表示你想要的值
response_check: # 数组值,输出检查,用来检查poc是否命中,多个组之间是OR关系
- # 每组内的参数之间是AND关系
status_code: # 表示响应状态码
value: # 需要检查的状态码的值
operator: # 比较规则,可以取值1,2,3,4,5;分别代表操作是字符串包含,正则匹配,大于,小于以及等于,其中大于,小于,等于只适用于数值
resp_headers: # 表示响应中的headers
value: # 需要检查的响应头中的值
operator: # 比较规则,可以取值1,2;;分别代表操作是字符串包含,正则匹配
resp_body: # 表示响应中的body
value: # 需要检查的响应体中的值
operator: # 比较规则,可以取值1,2;分别代表操作是字符串包含,正则匹配