Skip to content

Commit 1d0be79

Browse files
committed
Test target MATCHED_VARS_NAMES - Positive & Negative
Signed-off-by: Sebitosh <[email protected]>
1 parent c1071b7 commit 1d0be79

19 files changed

+486
-15
lines changed

config_tests/CONF_000_GLOBAL.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ global:
1313
log,\
1414
msg:'%{MATCHED_VAR_NAME} was caught in phase:${PHASE}$',\
1515
ver:'${VERSION}$'"
16+
- name: "Non-disruptive SecRule for TARGETS"
17+
template: |
18+
SecRule ${TARGET}$ "${OPERATOR}$ ${OPARG}$" \
19+
"id:${CURRID}$,\
20+
phase:${PHASE}$,\
21+
t:none,\
22+
log,\
23+
msg:'%{MATCHED_VAR_NAME} was caught in phase:${PHASE}$',\
24+
ver:'${VERSION}$'"
1625
default_tests_phase_methods:
1726
- 1: get
1827
- 2: post
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
target: MATCHED_VARS_NAMES
2+
rulefile: MRTS_026_MATCHED_VARS_NAMES-NEG.conf
3+
testfile: MRTS_026_MATCHED_VARS_NAMES-NEG.yaml
4+
templates:
5+
- Non-disruptive SecRule for TARGETS
6+
colkey:
7+
- - ''
8+
operator:
9+
- '@contains'
10+
oparg:
11+
- ARGS:matched_vars_names_negative_test
12+
generation:
13+
before_each: |
14+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:${CURRID}$, phase:${PHASE}$, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
15+
SecRule ARGS "@rx matched_vars_names_test" "id:${CURRID}$, phase:${PHASE}$, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
16+
phase:
17+
- 1
18+
- 2
19+
- 3
20+
- 4
21+
- 5
22+
testdata:
23+
phase_methods:
24+
1: get
25+
2: post
26+
3: post
27+
4: post
28+
5: post
29+
targets:
30+
- target: ''
31+
test:
32+
data:
33+
matched_vars_names_test: matched_vars_names_test
34+
matched_vars_names_negative_test: matched_vars_names_negative_test
35+
output:
36+
log:
37+
no_expect_ids: []
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
target: MATCHED_VARS_NAMES
2+
rulefile: MRTS_026_MATCHED_VARS_NAMES.conf
3+
testfile: MRTS_026_MATCHED_VARS_NAMES.yaml
4+
templates:
5+
- Non-disruptive SecRule for TARGETS
6+
colkey:
7+
- - ''
8+
operator:
9+
- '@contains'
10+
oparg:
11+
- ARGS:matched_vars_names_test
12+
generation:
13+
before_each: |
14+
SecRule ARGS "@rx matched_vars_names_test" "id:${CURRID}$, phase:${PHASE}$, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
15+
phase:
16+
- 1
17+
- 2
18+
- 3
19+
- 4
20+
- 5
21+
testdata:
22+
phase_methods:
23+
1: get
24+
2: post
25+
3: post
26+
4: post
27+
5: post
28+
targets:
29+
- target: ''
30+
test:
31+
data:
32+
matched_vars_names_test: matched_vars_names_test
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:100092, phase:1, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
2+
SecRule ARGS "@rx matched_vars_names_test" "id:100093, phase:1, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
3+
4+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_negative_test" \
5+
"id:100094,\
6+
phase:1,\
7+
t:none,\
8+
log,\
9+
msg:'%{MATCHED_VAR_NAME} was caught in phase:1',\
10+
ver:'MRTS/0.1'"
11+
12+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:100095, phase:2, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
13+
SecRule ARGS "@rx matched_vars_names_test" "id:100096, phase:2, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
14+
15+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_negative_test" \
16+
"id:100097,\
17+
phase:2,\
18+
t:none,\
19+
log,\
20+
msg:'%{MATCHED_VAR_NAME} was caught in phase:2',\
21+
ver:'MRTS/0.1'"
22+
23+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:100098, phase:3, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
24+
SecRule ARGS "@rx matched_vars_names_test" "id:100099, phase:3, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
25+
26+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_negative_test" \
27+
"id:100100,\
28+
phase:3,\
29+
t:none,\
30+
log,\
31+
msg:'%{MATCHED_VAR_NAME} was caught in phase:3',\
32+
ver:'MRTS/0.1'"
33+
34+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:100101, phase:4, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
35+
SecRule ARGS "@rx matched_vars_names_test" "id:100102, phase:4, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
36+
37+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_negative_test" \
38+
"id:100103,\
39+
phase:4,\
40+
t:none,\
41+
log,\
42+
msg:'%{MATCHED_VAR_NAME} was caught in phase:4',\
43+
ver:'MRTS/0.1'"
44+
45+
SecRule ARGS "@rx matched_vars_names_negative_test" "id:100104, phase:5, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
46+
SecRule ARGS "@rx matched_vars_names_test" "id:100105, phase:5, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
47+
48+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_negative_test" \
49+
"id:100106,\
50+
phase:5,\
51+
t:none,\
52+
log,\
53+
msg:'%{MATCHED_VAR_NAME} was caught in phase:5',\
54+
ver:'MRTS/0.1'"
55+
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
SecRule ARGS "@rx matched_vars_names_test" "id:100107, phase:1, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
2+
3+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_test" \
4+
"id:100108,\
5+
phase:1,\
6+
t:none,\
7+
log,\
8+
msg:'%{MATCHED_VAR_NAME} was caught in phase:1',\
9+
ver:'MRTS/0.1'"
10+
11+
SecRule ARGS "@rx matched_vars_names_test" "id:100109, phase:2, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
12+
13+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_test" \
14+
"id:100110,\
15+
phase:2,\
16+
t:none,\
17+
log,\
18+
msg:'%{MATCHED_VAR_NAME} was caught in phase:2',\
19+
ver:'MRTS/0.1'"
20+
21+
SecRule ARGS "@rx matched_vars_names_test" "id:100111, phase:3, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
22+
23+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_test" \
24+
"id:100112,\
25+
phase:3,\
26+
t:none,\
27+
log,\
28+
msg:'%{MATCHED_VAR_NAME} was caught in phase:3',\
29+
ver:'MRTS/0.1'"
30+
31+
SecRule ARGS "@rx matched_vars_names_test" "id:100113, phase:4, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
32+
33+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_test" \
34+
"id:100114,\
35+
phase:4,\
36+
t:none,\
37+
log,\
38+
msg:'%{MATCHED_VAR_NAME} was caught in phase:4',\
39+
ver:'MRTS/0.1'"
40+
41+
SecRule ARGS "@rx matched_vars_names_test" "id:100115, phase:5, pass, log, msg:'matched vars is: %{MATCHED_VARS_NAMES}'"
42+
43+
SecRule MATCHED_VARS_NAMES "@contains ARGS:matched_vars_names_test" \
44+
"id:100116,\
45+
phase:5,\
46+
t:none,\
47+
log,\
48+
msg:'%{MATCHED_VAR_NAME} was caught in phase:5',\
49+
ver:'MRTS/0.1'"
50+

generated/rules/MRTS_110_XML.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
SecRule XML:/* "@beginsWith foo" \
2-
"id:100092,\
2+
"id:100117,\
33
phase:2,\
44
deny,\
55
t:none,\
@@ -8,7 +8,7 @@ SecRule XML:/* "@beginsWith foo" \
88
ver:'MRTS/0.1'"
99

1010
SecRule XML:/* "@beginsWith foo" \
11-
"id:100093,\
11+
"id:100118,\
1212
phase:3,\
1313
deny,\
1414
t:none,\
@@ -17,7 +17,7 @@ SecRule XML:/* "@beginsWith foo" \
1717
ver:'MRTS/0.1'"
1818

1919
SecRule XML:/* "@beginsWith foo" \
20-
"id:100094,\
20+
"id:100119,\
2121
phase:4,\
2222
deny,\
2323
t:none,\
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
meta:
3+
author: MRTS generate-rules.py
4+
enabled: true
5+
name: MRTS_026_MATCHED_VARS_NAMES-NEG.yaml
6+
description: Desc
7+
tests:
8+
- test_title: 100094-1
9+
ruleid: 100094
10+
test_id: 1
11+
desc: 'Test case for rule 100094, #1'
12+
stages:
13+
- description: Send request
14+
input:
15+
dest_addr: 127.0.0.1
16+
port: 80
17+
protocol: http
18+
method: GET
19+
headers:
20+
User-Agent: OWASP MRTS test agent
21+
Host: localhost
22+
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
23+
uri: /?matched_vars_names_test=matched_vars_names_test&matched_vars_names_negative_test=matched_vars_names_negative_test
24+
version: HTTP/1.1
25+
output:
26+
log:
27+
no_expect_ids:
28+
- 100094
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
meta:
3+
author: MRTS generate-rules.py
4+
enabled: true
5+
name: MRTS_026_MATCHED_VARS_NAMES-NEG.yaml
6+
description: Desc
7+
tests:
8+
- test_title: 100097-1
9+
ruleid: 100097
10+
test_id: 1
11+
desc: 'Test case for rule 100097, #1'
12+
stages:
13+
- description: Send request
14+
input:
15+
dest_addr: 127.0.0.1
16+
port: 80
17+
protocol: http
18+
method: POST
19+
headers:
20+
User-Agent: OWASP MRTS test agent
21+
Host: localhost
22+
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
23+
uri: /post
24+
version: HTTP/1.1
25+
data: matched_vars_names_test=matched_vars_names_test&matched_vars_names_negative_test=matched_vars_names_negative_test
26+
output:
27+
log:
28+
no_expect_ids:
29+
- 100097
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
meta:
3+
author: MRTS generate-rules.py
4+
enabled: true
5+
name: MRTS_026_MATCHED_VARS_NAMES-NEG.yaml
6+
description: Desc
7+
tests:
8+
- test_title: 100100-1
9+
ruleid: 100100
10+
test_id: 1
11+
desc: 'Test case for rule 100100, #1'
12+
stages:
13+
- description: Send request
14+
input:
15+
dest_addr: 127.0.0.1
16+
port: 80
17+
protocol: http
18+
method: POST
19+
headers:
20+
User-Agent: OWASP MRTS test agent
21+
Host: localhost
22+
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
23+
uri: /post
24+
version: HTTP/1.1
25+
data: matched_vars_names_test=matched_vars_names_test&matched_vars_names_negative_test=matched_vars_names_negative_test
26+
output:
27+
log:
28+
no_expect_ids:
29+
- 100100
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
meta:
3+
author: MRTS generate-rules.py
4+
enabled: true
5+
name: MRTS_026_MATCHED_VARS_NAMES-NEG.yaml
6+
description: Desc
7+
tests:
8+
- test_title: 100103-1
9+
ruleid: 100103
10+
test_id: 1
11+
desc: 'Test case for rule 100103, #1'
12+
stages:
13+
- description: Send request
14+
input:
15+
dest_addr: 127.0.0.1
16+
port: 80
17+
protocol: http
18+
method: POST
19+
headers:
20+
User-Agent: OWASP MRTS test agent
21+
Host: localhost
22+
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
23+
uri: /post
24+
version: HTTP/1.1
25+
data: matched_vars_names_test=matched_vars_names_test&matched_vars_names_negative_test=matched_vars_names_negative_test
26+
output:
27+
log:
28+
no_expect_ids:
29+
- 100103

0 commit comments

Comments
 (0)