mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-14 05:45:59 +03:00
Having macro to support variable modificator count
This commit is contained in:
parent
b8478b11bb
commit
7857031f56
File diff suppressed because it is too large
Load Diff
@ -8010,7 +8010,7 @@ switch (yykind)
|
|||||||
/// Constants.
|
/// Constants.
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
yylast_ = 3379, ///< Last index in yytable_.
|
yylast_ = 3145, ///< Last index in yytable_.
|
||||||
yynnts_ = 16, ///< Number of nonterminal symbols.
|
yynnts_ = 16, ///< Number of nonterminal symbols.
|
||||||
yyfinal_ = 338 ///< Termination state number.
|
yyfinal_ = 338 ///< Termination state number.
|
||||||
};
|
};
|
||||||
|
@ -3047,6 +3047,12 @@ run_time_string:
|
|||||||
$1->append(std::move($2));
|
$1->append(std::move($2));
|
||||||
$$ = std::move($1);
|
$$ = std::move($1);
|
||||||
}
|
}
|
||||||
|
| run_time_string VAR_COUNT var
|
||||||
|
{
|
||||||
|
std::unique_ptr<Variable> c(new VariableModificatorCount(std::move($3)));
|
||||||
|
$1->append(std::move(c));
|
||||||
|
$$ = std::move($1);
|
||||||
|
}
|
||||||
| FREE_TEXT_QUOTE_MACRO_EXPANSION
|
| FREE_TEXT_QUOTE_MACRO_EXPANSION
|
||||||
{
|
{
|
||||||
std::unique_ptr<RunTimeString> r(new RunTimeString());
|
std::unique_ptr<RunTimeString> r(new RunTimeString());
|
||||||
@ -3059,6 +3065,13 @@ run_time_string:
|
|||||||
r->append(std::move($1));
|
r->append(std::move($1));
|
||||||
$$ = std::move(r);
|
$$ = std::move(r);
|
||||||
}
|
}
|
||||||
|
| VAR_COUNT var
|
||||||
|
{
|
||||||
|
std::unique_ptr<RunTimeString> r(new RunTimeString());
|
||||||
|
std::unique_ptr<Variable> c(new VariableModificatorCount(std::move($2)));
|
||||||
|
r->append(std::move(c));
|
||||||
|
$$ = std::move(r);
|
||||||
|
}
|
||||||
;
|
;
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -898,6 +898,10 @@ EQUALS_LESS (?i:=\<)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
<EXPECTING_ACTION_PREDICATE_VARIABLE>{
|
||||||
|
{VAR_COUNT} { return p::make_VAR_COUNT(*driver.loc.back()); }
|
||||||
|
}
|
||||||
|
|
||||||
<EXPECTING_VARIABLE,EXPECTING_ACTION_PREDICATE_VARIABLE>{
|
<EXPECTING_VARIABLE,EXPECTING_ACTION_PREDICATE_VARIABLE>{
|
||||||
. { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); }
|
. { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); }
|
||||||
{VARIABLE_ARGS_COMBINED_SIZE} { return p::make_VARIABLE_ARGS_COMBINED_SIZE(*driver.loc.back()); }
|
{VARIABLE_ARGS_COMBINED_SIZE} { return p::make_VARIABLE_ARGS_COMBINED_SIZE(*driver.loc.back()); }
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"enabled":1,
|
"enabled":1,
|
||||||
"version_min":300000,
|
"version_min":300000,
|
||||||
"version_max":0,
|
"version_max":0,
|
||||||
"title":"Testing collection :: TX (with macro) (1/4)",
|
"title":"Testing collection :: TX (with macro) (1/n)",
|
||||||
"client":{
|
"client":{
|
||||||
"ip":"200.249.12.31",
|
"ip":"200.249.12.31",
|
||||||
"port":2313
|
"port":2313
|
||||||
@ -61,7 +61,7 @@
|
|||||||
"enabled":1,
|
"enabled":1,
|
||||||
"version_min":300000,
|
"version_min":300000,
|
||||||
"version_max":0,
|
"version_max":0,
|
||||||
"title":"Testing collection :: TX (with macro) (2/4)",
|
"title":"Testing collection :: TX (with macro) (2/n)",
|
||||||
"client":{
|
"client":{
|
||||||
"ip":"200.249.12.31",
|
"ip":"200.249.12.31",
|
||||||
"port":2313
|
"port":2313
|
||||||
@ -119,7 +119,7 @@
|
|||||||
"enabled":1,
|
"enabled":1,
|
||||||
"version_min":300000,
|
"version_min":300000,
|
||||||
"version_max":0,
|
"version_max":0,
|
||||||
"title":"Testing collection :: TX (with macro) (3/4)",
|
"title":"Testing collection :: TX (with macro) (3/n)",
|
||||||
"client":{
|
"client":{
|
||||||
"ip":"200.249.12.31",
|
"ip":"200.249.12.31",
|
||||||
"port":2313
|
"port":2313
|
||||||
@ -178,7 +178,7 @@
|
|||||||
"enabled":1,
|
"enabled":1,
|
||||||
"version_min":300000,
|
"version_min":300000,
|
||||||
"version_max":0,
|
"version_max":0,
|
||||||
"title":"Testing collection :: TX (with macro) (4/4)",
|
"title":"Testing collection :: TX (with macro) (4/n)",
|
||||||
"client":{
|
"client":{
|
||||||
"ip":"200.249.12.31",
|
"ip":"200.249.12.31",
|
||||||
"port":2313
|
"port":2313
|
||||||
@ -233,5 +233,63 @@
|
|||||||
"SecRule REQUEST_HEADERS \"@contains PHPSESSID\" \"id:3,t:lowercase,t:none,setvar:TX.something_else=-5\"",
|
"SecRule REQUEST_HEADERS \"@contains PHPSESSID\" \"id:3,t:lowercase,t:none,setvar:TX.something_else=-5\"",
|
||||||
"SecRule TX:something_else \"@contains to_test\" \"id:4,t:lowercase,t:none\""
|
"SecRule TX:something_else \"@contains to_test\" \"id:4,t:lowercase,t:none\""
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"enabled":1,
|
||||||
|
"version_min":300000,
|
||||||
|
"version_max":0,
|
||||||
|
"title":"Testing collection :: TX (with macro) (5/n)",
|
||||||
|
"client":{
|
||||||
|
"ip":"200.249.12.31",
|
||||||
|
"port":2313
|
||||||
|
},
|
||||||
|
"server":{
|
||||||
|
"ip":"200.249.12.31",
|
||||||
|
"port":80
|
||||||
|
},
|
||||||
|
"request":{
|
||||||
|
"headers":{
|
||||||
|
"User-Agent":"Mozilla\/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko\/20091102 Firefox\/3.5.5 (.NET CLR 3.5.30729)",
|
||||||
|
"Accept":"text\/html,application\/xhtml+xml,application\/xml;q=0.9,*\/*;q=0.8",
|
||||||
|
"Accept-Language":"en-us,en;q=0.5",
|
||||||
|
"Accept-Encoding":"gzip,deflate",
|
||||||
|
"Accept-Charset":"ISO-8859-1,utf-8;q=0.7,*;q=0.7",
|
||||||
|
"Keep-Alive":"300",
|
||||||
|
"Connection":"keep-alive",
|
||||||
|
"Cookie":"PHPSESSID=rAAAAAAA2t5uvjq435r4q7ib3vtdjq120",
|
||||||
|
"Pragma":"no-cache",
|
||||||
|
"Cache-Control":"no-cache"
|
||||||
|
},
|
||||||
|
"uri":"\/test.pl?param1= test ¶m2=test2",
|
||||||
|
"method":"GET",
|
||||||
|
"http_version":1.1,
|
||||||
|
"body":""
|
||||||
|
},
|
||||||
|
"response":{
|
||||||
|
"headers":{
|
||||||
|
"Content-Type":"text\/xml; charset=utf-8\n\r",
|
||||||
|
"Content-Length":"length\n\r"
|
||||||
|
},
|
||||||
|
"body":[
|
||||||
|
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\r",
|
||||||
|
"<soap:Envelope xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\" xmlns:soap=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\">\n\r",
|
||||||
|
" <soap:Body>\n\r",
|
||||||
|
" <EnlightenResponse xmlns=\"http:\/\/clearforest.com\/\">\n\r",
|
||||||
|
" <EnlightenResult>string<\/EnlightenResult>\n\r",
|
||||||
|
" <\/EnlightenResponse>\n\r",
|
||||||
|
" <\/soap:Body>\n\r",
|
||||||
|
"<\/soap:Envelope>\n\r"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expected":{
|
||||||
|
"audit_log":"",
|
||||||
|
"debug_log":"Saving msg: Number of request hearders: 10",
|
||||||
|
"error_log":"Number of request hearders: 10",
|
||||||
|
"http_code":403
|
||||||
|
},
|
||||||
|
"rules":[
|
||||||
|
"SecRuleEngine On",
|
||||||
|
"SecRule REQUEST_HEADERS \".*\" \"id:1,msg:'Number of request hearders: %{&REQUEST_HEADERS}',deny\""
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user