Skip to content

Commit aa158ce

Browse files
victorhoraFelipe Zimmerle
authored andcommitted
Set the correct variable (m_requestBodyType) and add test case
1 parent f999f54 commit aa158ce

File tree

3 files changed

+99
-1
lines changed

3 files changed

+99
-1
lines changed

Makefile.am

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ TESTS+=test/test-cases/regression/debug_log.json
150150
TESTS+=test/test-cases/regression/action-initcol.json
151151
TESTS+=test/test-cases/regression/variable-TIME_WDAY.json
152152
TESTS+=test/test-cases/regression/action-ctl_request_body_processor.json
153+
TESTS+=test/test-cases/regression/action-ctl_request_body_processor_urlencoded.json
153154
TESTS+=test/test-cases/regression/variable-REMOTE_ADDR.json
154155
TESTS+=test/test-cases/regression/action-tag.json
155156
TESTS+=test/test-cases/regression/variable-TIME_HOUR.json

src/actions/ctl/request_body_processor_urlencoded.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace ctl {
2727

2828
bool RequestBodyProcessorURLENCODED::evaluate(Rule *rule,
2929
Transaction *transaction) {
30-
transaction->m_requestBodyProcessor = Transaction::WWWFormUrlEncoded;
30+
transaction->m_requestBodyType = Transaction::WWWFormUrlEncoded;
3131
transaction->m_variableReqbodyProcessor.set("URLENCODED",
3232
transaction->m_variableOffset);
3333

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
[
2+
{
3+
"enabled":1,
4+
"version_min":300000,
5+
"title":"ctl:requestBodyProcessor=URLENCODED",
6+
"client":{
7+
"ip":"200.249.12.31",
8+
"port":123
9+
},
10+
"server":{
11+
"ip":"200.249.12.31",
12+
"port":80
13+
},
14+
"request":{
15+
"headers":{
16+
"Host":"localhost",
17+
"User-Agent":"curl/7.38.0",
18+
"Accept":"*/*",
19+
"Content-Length":"330",
20+
"Content-Type":"application/lhebs",
21+
"Expect":"100-continue"
22+
},
23+
"uri":"/a=urlencoded",
24+
"method":"POST",
25+
"body":[
26+
"param1=value1\r"
27+
]
28+
},
29+
"response":{
30+
"headers":{
31+
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
32+
"Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
33+
"Content-Type":"text/html"
34+
},
35+
"body":[
36+
"no need."
37+
]
38+
},
39+
"expected":{
40+
"debug_log":"Target value: \\\"value1",
41+
"http_code": 403
42+
},
43+
"rules":[
44+
"SecRuleEngine On",
45+
"SecRequestBodyAccess On",
46+
"SecRule REQUEST_HEADERS:Content-Type \"@contains lhebs\" \"phase:1,id:122,t:none,log,auditlog,pass,ctl:requestBodyProcessor=URLENCODED\"",
47+
"SecRule ARGS_POST \"@contains value1\" \"phase:2,id:123,t:none,deny,log,auditlog\""
48+
]
49+
},
50+
{
51+
"enabled":1,
52+
"version_min":300000,
53+
"title":"ctl:requestBodyProcessor=URLENCODED",
54+
"client":{
55+
"ip":"200.249.12.31",
56+
"port":123
57+
},
58+
"server":{
59+
"ip":"200.249.12.31",
60+
"port":80
61+
},
62+
"request":{
63+
"headers":{
64+
"Host":"localhost",
65+
"User-Agent":"curl/7.38.0",
66+
"Accept":"*/*",
67+
"Content-Length":"330",
68+
"Content-Type":"application/x-www-form-urlencoded",
69+
"Expect":"100-continue"
70+
},
71+
"uri":"/a=urlencoded",
72+
"method":"POST",
73+
"body":[
74+
"param1=value1\r"
75+
]
76+
},
77+
"response":{
78+
"headers":{
79+
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
80+
"Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
81+
"Content-Type":"text/html"
82+
},
83+
"body":[
84+
"no need."
85+
]
86+
},
87+
"expected":{
88+
"debug_log":"Target value: \\\"value1",
89+
"http_code": 403
90+
},
91+
"rules":[
92+
"SecRuleEngine On",
93+
"SecRequestBodyAccess On",
94+
"SecRule ARGS_POST \"@contains value1\" \"phase:2,id:123,t:none,deny,log,auditlog\""
95+
]
96+
}
97+
]

0 commit comments

Comments
 (0)