Fix on top of #1943 + adding test cases

This commit is contained in:
Felipe Zimmerle 2018-11-01 15:57:11 -03:00
parent 39f4a5d7d2
commit 9d80983e55
No known key found for this signature in database
GPG Key ID: E6DFB08CE8B11277
4 changed files with 4268 additions and 4144 deletions

View File

@ -94,6 +94,7 @@ TESTS+=test/test-cases/regression/issue-1844.json
TESTS+=test/test-cases/regression/issue-1850.json TESTS+=test/test-cases/regression/issue-1850.json
TESTS+=test/test-cases/regression/issue-1725.json TESTS+=test/test-cases/regression/issue-1725.json
TESTS+=test/test-cases/regression/issue-1941.json TESTS+=test/test-cases/regression/issue-1941.json
TESTS+=test/test-cases/regression/issue-1943.json
TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS.json TESTS+=test/test-cases/regression/variable-RESPONSE_HEADERS.json
TESTS+=test/test-cases/regression/config-include.json TESTS+=test/test-cases/regression/config-include.json
TESTS+=test/test-cases/regression/variable-WEBSERVER_ERROR_LOG.json TESTS+=test/test-cases/regression/variable-WEBSERVER_ERROR_LOG.json

File diff suppressed because it is too large Load Diff

View File

@ -656,7 +656,9 @@ EQUALS_MINUS (?i:=\-)
} }
<EXPECTING_ACTION_PREDICATE_VARIABLE>{ <EXPECTING_ACTION_PREDICATE_VARIABLE>{
[}] { BEGIN_PREVIOUS(); } [}][%][{] { yyless(1); BEGIN_PREVIOUS(); }
[}][%] { BEGIN_PREVIOUS(); }
[}] { BEGIN_PREVIOUS(); }
} }
<ACTION_PREDICATE_ENDS_WITH_QUOTE>{ <ACTION_PREDICATE_ENDS_WITH_QUOTE>{

View File

@ -0,0 +1,116 @@
[
{
"enabled": 1,
"version_min": 300000,
"version_max": 0,
"title": "double macros bug 1/n",
"client": {
"ip": "200.249.12.31",
"port": 2313
},
"server": {
"ip": "200.249.12.31",
"port": 80
},
"request": {
"headers": {
"Host": "net.tutsplus.com",
"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=r2t5uvjq435r4q7ib3vtdjq120",
"Pragma": "no-cache",
"Cache-Control": "no-cache"
},
"uri": "\/test.pl?param1= test &param2=test2&pparam=дор",
"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": {
"debug_log": "TX:msg with value: test tes",
"http_code": 200
},
"rules": [
"SecRuleEngine On",
"SecRule ARGS \"@contains test2\" \"phase:1,id:999,setvar:tx.msg=%{ARGS:param1}%{ARGS:param1}\""
]
},
{
"enabled": 1,
"version_min": 300000,
"version_max": 0,
"title": "double macros bug 2/n",
"client": {
"ip": "200.249.12.31",
"port": 2313
},
"server": {
"ip": "200.249.12.31",
"port": 80
},
"request": {
"headers": {
"Host": "net.tutsplus.com",
"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=r2t5uvjq435r4q7ib3vtdjq120",
"Pragma": "no-cache",
"Cache-Control": "no-cache"
},
"uri": "\/test.pl?param1= test &param2=test2&pparam=дор",
"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": {
"debug_log": "",
"http_code": 200
},
"rules": [
"SecRuleEngine On",
"SecRule ARGS|XML|XML \"test\" \"id:123,phase:2,block,msg:'Possible harmful executable file detected',logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VARS}',t:none,tag:'application-multi',tag:'platform-multi',tag:'attack-file-upload',tag:'OWASP_CRS/WEB_ATTACK/MALICIOUS_FILE',tag:'paranoia-level/1',ver:'OWASP_CRS/3.1.0',severity:'NOTICE',setvar:'tx.msg=%{rule.msg}',setvar:'tx.anomaly_score=+%{tx.notice_anomaly_score}',setvar:'tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/MALICIOUS-FILE-%{matched_var_name}=%{tx.0}'\""
]
}
]