ModSecurity/test/test-cases/regression/offset-variable.json
Eduardo Arias e6e2989bd5 Configure test fixture using CTest for Windows build
- Added new test/test_suite.in with list of regression and unit tests
  previously in Makefile.am, to be shared between Unix and Windows
  builds.
- Updated regression.cc & unit.cc to return the number of failed tests
  to indicate to CTest that the test failed. Similarly, a crash or
  unhandled exception terminates the process with a non-zero exit code.
  - This change doesn't affect running the tests with autotest in Unix
    builds because this processes test output from custom-test-driver &
    test-suite.sh, and ignores the exit code of the test runner.
- Removed comment in test/test-cases/regression-offset-variable.json as
  this is not supported by JSON and prevents strict parsers to read and
  process the file.
- Minor change in regression.cc's clearAuditLog to replace std::ifstream
  with std::ofstream as the mode to open the flag applies to an output
  stream.
- Minor change in unit.cc to simplify code that deletes tests.
- Minor changes to test/custom-test-driver to correct usage information.
2024-05-13 10:22:12 -07:00

2016 lines
55 KiB
JSON

[
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,3v23,6t:trim"
},
"rules":[
"SecRule ARGS \"@rx val\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_GET",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value2",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o3,3v37,6t:trim"
},
"rules":[
"SecRule ARGS_GET \"@rx ue2\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_POST 1",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"POST",
"body":[
"param1=value1&param2=value1"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o3,3v142,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_POST \"@rx ue1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_POST 2",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o3,3v156,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_POST \"@rx ue2\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_GET_NAMES 1",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,6v17,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_GET_NAMES \"@rx param1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_GET_NAMES 2",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,6v31,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_GET_NAMES \"@rx param2\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_GET_NAMES 3",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_GET_NAMES \"@rx am1 par\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_GET_NAMES 4",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_GET_NAMES \"@rx am1 param2 par\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_POST_NAMES",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log": "0,6v149,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_POST_NAMES \"@rx param1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_NAMES",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"POST",
"body":[
"param1=value1&param2=value2&param3=value3"
]
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,6v17,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_NAMES \"@rx param1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_COMBINED_SIZE 1",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"v16,6v23,6v30,6v37,6v44,6v51,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_COMBINED_SIZE \"@gt 1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_COMBINED_SIZE 2",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"v16,6v23,6v30,6v37,6v44,6v51,6t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS_COMBINED_SIZE \"@gt 1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_LINE",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o23,6v0,63t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_LINE \"value1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_METHOD",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,3v0,3t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_METHOD \"GET\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_PROTOCOL",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o5,3v58,8t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_PROTOCOL \"1.1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - PATH_INFO",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o1,5v4,11t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule PATH_INFO \"index\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - QUERY_STRING",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o7,6v16,41t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule QUERY_STRING \"value1\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_BASENAME",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o6,4v5,10t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_BASENAME \"html\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_URI",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html%20%20?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o7,4v4,59t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_URI \"html\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_URI_RAW",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html%20%20?param1=value1&param2=value1&param3=value1",
"method":"GET",
"http_version": 1.1
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o7,4v4,59t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_URI_RAW \"html\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_HEADERS",
"request":{
"headers":{
"Content-Length": "27",
"Host":"localhost",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,9v89,9t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_HEADERS \"localhost\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_HEADERS:content-type",
"request":{
"headers":{
"Content-Length": "27",
"Host":"localhost",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o14,3v163,33t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_HEADERS \"www\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - AUTH_TYPE 1",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,5v162,5t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule AUTH_TYPE \"Basic\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - AUTH_TYPE 2",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,5v79,5t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule AUTH_TYPE \"Basic\" \"id:1,phase:2,pass,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_HEADERS_NAMES",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,4v64,13t:lowercase"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_HEADERS_NAMES \"auth\" \"id:1,phase:2,pass,t:lowercase,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_COOKIES 1",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie":"USER_TOKEN=Yes; a=z; t=b"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o1,2v216,3t:lowercase"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_COOKIES \"es\" \"id:1,phase:2,pass,t:lowercase,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_COOKIES 2",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie":"USER_TOKEN=Yes; a=z; t=b"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,1v223,1t:lowercase"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_COOKIES \"z\" \"id:1,phase:2,pass,t:lowercase,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_COOKIES 3",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie":"USER_TOKEN=Yes; a=z; t=b"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,1v228,1t:lowercase,t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_COOKIES \"b\" \"id:1,phase:2,pass,t:lowercase,t:trim,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - REQUEST_COOKIES_NAMES",
"request":{
"headers":{
"AuThOrIzAtIoN": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie":"USER_TOKEN=Yes; a=z; t=b"
},
"uri":"/index.html?param1=value1&param2=value1&param3=value1",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,1v226,1"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_COOKIES_NAMES \"t\" \"id:1,phase:2,pass,msg:'ops'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REMOTE_USER",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"27",
"Content-Type":"application/x-www-form-urlencoded",
"Authorization": "Basic QWxhZGRpbjpPcGVuU2VzYW1l"
},
"uri":"/one/two/three?key1=value1&key2=v%20a%20l%20u%20e%202",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Last-Modified":"Sun, 26 Oct 2014 22:33:37 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"error_log":"o0,7v198,30t:trim"
},
"rules":[
"SecRuleEngine On",
"SecRule REMOTE_USER \"Aladdin\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_BODY",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o45,30v193,516t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_BODY \"Content-Disposition: form-data\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_BODY",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o45,30v193,516t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_BODY \"Content-Disposition: form-data\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_BODY_LENGTH",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"v193,516t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_BODY_LENGTH \"@gt 5\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_FILENAME 1",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/file?something else",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o6,5v5,11t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_FILENAME \"/file\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_FILENAME 2",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20?something else",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o6,8v5,23t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_FILENAME \"/f i l e\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: REQUEST_FILENAME 3",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o6,8v5,23t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule REQUEST_FILENAME \"/f i l e\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: ARGS/Multipart 1",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file2.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,4v306,4t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS \"test\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Testing Variables :: ARGS/Multipart 2",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file2.txt\"",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,5v402,5t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule ARGS \"test2\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,16v680,20t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES \"small_text_file2\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,16v512,20t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES \"small_text_file1\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_NAMES",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,8o0,8v491,8t:trimo0,16o0,16v709,16t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES_NAMES \"(fiasdfasdfledata|filedata)\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_SIZES 1",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"v560,32t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES_SIZES:filedata \"@gt 0\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_SIZES 2",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"v754,38t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES_SIZES:fiasdfasdfledata \"@gt 0\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_COMBINED_SIZE",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"v560,32v754,38t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecRule FILES_COMBINED_SIZE \"@gt 0\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_TMP_CONTENT 1",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o8,7v754,38t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecUploadKeepFiles On",
"SecUploadDir /tmp",
"SecRule FILES_TMP_CONTENT \"another\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - FILES_TMP_CONTENT 2",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o15,5v560,32t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecUploadKeepFiles On",
"SecUploadDir /tmp",
"SecRule FILES_TMP_CONTENT:filedata \"small\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - PATH_INFO",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o6,4v5,23t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecUploadKeepFiles On",
"SecUploadDir /tmp",
"SecRule PATH_INFO \"/f i\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - MULTIPART_FILENAME",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,20v680,20t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecUploadKeepFiles On",
"SecUploadDir /tmp",
"SecRule MULTIPART_FILENAME \"small_text_file2.txt\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - MULTIPART_NAME",
"client":{
"ip":"200.249.12.31",
"port":123
},
"server":{
"ip":"200.249.12.31",
"port":80
},
"request":{
"headers":{
"Host":"localhost",
"User-Agent":"curl/7.38.0",
"Accept":"*/*",
"Content-Length":"330",
"Content-Type":"multipart/form-data; boundary=--------------------------756b6d74fa1a8ee2",
"Expect":"100-continue"
},
"uri":"/wheee/f%20i%20l%20e%20",
"method":"POST",
"body":[
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name\"",
"",
"test",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"name2\"",
"",
"test2",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; name=\"filedata\"; filename=\"small_text_file1.txt\"",
"Content-Type: text/plain",
"",
"This is a very small test file..",
"----------------------------756b6d74fa1a8ee2",
"Content-Disposition: form-data; filename=\"small_text_file2.txt\"; name=\"fiasdfasdfledata\" ",
"Content-Type: text/plain",
"",
"This is another very small test file..",
"----------------------------756b6d74fa1a8ee2--"
]
},
"expected":{
"error_log":"o0,16v709,16t:trim"
},
"rules":[
"SecRequestBodyAccess On",
"SecUploadKeepFiles On",
"SecUploadDir /tmp",
"SecRule MULTIPART_NAME \"fiasdfasdfledata\" \"id:1,phase:3,pass,t:trim,msg:'s'\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS n",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param01=5555&bbbbbbbmy_id=6",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"http_code": 403,
"error_log":"o0,1v42,1"
},
"rules":[
"SecRuleEngine On",
"SecRule ARGS \"@contains 6\" \"id:1,phase:2,deny,status:403,log\""
]
},
{
"enabled":1,
"version_min":300000,
"title":"Variable offset - ARGS_NAMES n",
"request":{
"headers":{
"Host":"localhost",
"Content-Length": "27",
"Content-Type": "application/x-www-form-urlencoded"
},
"uri":"/index.html?param01=5555&bbbbbbbmy_id=6",
"method":"GET"
},
"response":{
"headers":{
"Date":"Mon, 13 Jul 2015 20:02:41 GMT",
"Content-Type":"text/html"
},
"body":[
"no need."
]
},
"expected":{
"http_code": 403,
"error_log":"o7,5v29,12"
},
"rules":[
"SecRuleEngine On",
"SecRule ARGS_NAMES \"@contains my_id\" \"id:1,phase:2,deny,status:403,log\""
]
}
]