├── .github └── workflows │ ├── ci.yml │ └── publish.yml ├── .gitignore ├── CONTRIBUTORS.md ├── LICENSE ├── MANIFEST ├── README.md ├── docs ├── ExtendingFTW.md ├── Journaling.md └── YAMLFormat.md ├── ftw ├── __init__.py ├── errors.py ├── http.py ├── logchecker.py ├── pytest_plugin.py ├── ruleset.py ├── testrunner.py ├── util.py └── util │ ├── ironbee.py │ ├── output │ ├── b00-01-normal.yaml │ ├── b01-01-query-string.yaml │ ├── b02-01-request-hostname-uri.yaml │ ├── b02-02-request-hostname-header.yaml │ ├── b03-01-header.yaml │ ├── b03-02-header-user-agent.yaml │ ├── b03-03-header-referer.yaml │ ├── b03-04-header-cookie.yaml │ ├── b03-05-header-authorization-username.yaml │ ├── b03-06-header-authorization-password.yaml │ ├── b04-01-request-filename.yaml │ ├── b05-01-request-method.yaml │ ├── b06-01-request-protocol.yaml │ ├── b07-01-trailing-header-cookie.yaml │ ├── b08-01-request-body-urlencoded-param-value.yaml │ ├── b08-02-request-body-urlencoded-param-name.yaml │ ├── b09-01-request-body-json.yaml │ ├── b10-01-multipart-preamble.yaml │ ├── b10-02-multipart-param-name.yaml │ ├── b10-03-multipart-param-filename.yaml │ ├── b10-04-multipart-file-contents.yaml │ ├── b10-05-multipart-epilogue.yaml │ ├── m00-01-normal.yaml │ ├── m01-01-invalid-separator.yaml │ ├── m01-02-invalid-separator.yaml │ ├── m02-01-invalid-parameter-name.yaml │ ├── m02-02-invalid-parameter-name.yaml │ ├── m03-01-multiple-boundaries.yaml │ ├── m03-02-multiple-boundaries.yaml │ ├── m03-03-multiple-boundaries.yaml │ ├── m03-04-multiple-boundaries.yaml │ ├── m04-whitespace-after-parameter-name.yaml │ ├── m05-whitespace-before-parameter-value.yaml │ ├── m06-whitespace-after-parameter-value.yaml │ ├── m07-01-special-chars-in-boundary.yaml │ ├── m07-02-special-chars-in-boundary.yaml │ ├── m08-01-quoted-boundary.yaml │ ├── m08-02-whitespace-in-quoted-boundary.yaml │ ├── m08-03-whitespace-in-quoted-boundary.yaml │ ├── m08-04-quote-in-quoted-boundary.yaml │ ├── m08-05-quote-in-quoted-boundary.yaml │ ├── m08-06-partial-quote.yaml │ ├── m08-07-partial-quote.yaml │ ├── m08-08-whitespace-after-boundary.yaml │ ├── m09-data-after-last-boundary.yaml │ ├── m10-boundary-case-sensitivity.yaml │ ├── m11-01-invalid-multipart-type.yaml │ ├── m11-02-invalid-multipart-type.yaml │ ├── m11-03-invalid-multipart-type.yaml │ ├── m11-04-invalid-multipart-type.yaml │ ├── m11-05-invalid-multipart-type.yaml │ ├── m11-06-invalid-multipart-type.yaml │ ├── m11-07-invalid-multipart-type.yaml │ ├── m12-01-disposition-multiple-param-names.yaml │ ├── m12-02-disposition-name-no-quotes.yaml │ ├── m12-03-disposition-name-single-quotes.yaml │ ├── m12-04-disposition-name-partial-quote.yaml │ ├── m12-05-disposition-name-partial-quote.yaml │ ├── m13-01-disposition-folding.yaml │ ├── m13-02-disposition-folding-isspace.yaml │ ├── m13-03-disposition-folding.yaml │ ├── m13-04-disposition-folding.yaml │ ├── m13-05-disposition-folding.yaml │ ├── m13-06-disposition-folding.yaml │ ├── m14-01-disposition-php-quoting.yaml │ ├── m15-01-invalid-part.yaml │ ├── m16-lf-line-endings.yaml │ ├── m17-01-first-boundary-lf.yaml │ ├── m17-02-first-boundary-crlf.yaml │ ├── m18-cr-line.yaml │ ├── m19-multiple-ct-headers.yaml │ ├── path-00-baseline.yaml │ ├── path-01-url-encoding.yaml │ ├── path-02-u-encoding.yaml │ ├── path-03-utf8-encoded.yaml │ ├── path-04-utf8-bare.yaml │ ├── path-05-u-bestfit.yaml │ ├── path-06-utf8-bare-bestfit.yaml │ ├── path-07-utf8-encoded-bestfit.yaml │ ├── path-08-invalid-url-encoding.yaml │ ├── path-09-invalid-u-encoding.yaml │ ├── path-10-valid-invalid-urle-preference.yaml │ ├── path-11-valid-invalid-u-preference.yaml │ ├── path-12-NUL-encoded.yaml │ ├── path-13-NUL-bare.yaml │ ├── path-14-backslash-separator.yaml │ ├── path-15-forward-slash-separator-url-encoded.yaml │ ├── path-16-forward-slash-separator-u-encoded.yaml │ ├── path-17-backslash-separator-url-encoded.yaml │ ├── path-18-backslash-separator-u-encoded.yaml │ ├── path-19-control-chars-encoded.yaml │ ├── path-20-control-chars-bare.yaml │ ├── path-21-utf8-overlong-encoded-2.yaml │ ├── path-22-utf8-overlong-encoded-3.yaml │ ├── path-23-utf8-overlong-encoded-4.yaml │ ├── path-24-utf8-overlong-bare-2.yaml │ ├── path-25-utf8-overlong-bare-3.yaml │ ├── path-26-utf8-overlong-bare-4.yaml │ ├── path-27-utf8-separators-overlong-encoded-2.yaml │ ├── path-28-utf8-separators-overlong-encoded-3.yaml │ ├── path-29-utf8-separators-overlong-encoded-4.yaml │ ├── path-30-utf8-separators-overlong-bare-2.yaml │ ├── path-31-utf8-separators-overlong-bare-3.yaml │ ├── path-32-utf8-separators-overlong-bare-4.yaml │ ├── path-33-u-fullwidth-mapping.yaml │ ├── path-34-utf8-invalid-encoding.yaml │ ├── path-35-utf8-encoded-fullwidth-mapping.yaml │ ├── path-36-double-url-decoding.yaml │ ├── path-37-unicode-normalization.yaml │ └── path-38-utf8-bare-fullwidth-mapping.yaml │ ├── public_suffix_list.dat │ └── request_to_yaml.py ├── pyproject.toml ├── requirements.txt ├── setup.cfg ├── setup.py ├── test ├── __init__.py ├── integration │ ├── BASICFIXTURE.yaml │ ├── COOKIEFIXTURE.yaml │ ├── LOGCONTAINSFIXTURE.yaml │ ├── NOLOGCONTAINSFIXTURE.yaml │ ├── test_cookie.py │ ├── test_http.py │ ├── test_logcontains.py │ ├── test_nologcontains.py │ └── test_runner.py ├── test_default.py ├── test_modsecurityv2.py ├── unit │ ├── test_logchecker.py │ ├── test_response.py │ └── test_ruleset.py └── yaml │ └── EXAMPLE.yaml └── tools └── build_journal.py /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/.gitignore -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/CONTRIBUTORS.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/MANIFEST -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/README.md -------------------------------------------------------------------------------- /docs/ExtendingFTW.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/docs/ExtendingFTW.md -------------------------------------------------------------------------------- /docs/Journaling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/docs/Journaling.md -------------------------------------------------------------------------------- /docs/YAMLFormat.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/docs/YAMLFormat.md -------------------------------------------------------------------------------- /ftw/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/__init__.py -------------------------------------------------------------------------------- /ftw/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/errors.py -------------------------------------------------------------------------------- /ftw/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/http.py -------------------------------------------------------------------------------- /ftw/logchecker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/logchecker.py -------------------------------------------------------------------------------- /ftw/pytest_plugin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/pytest_plugin.py -------------------------------------------------------------------------------- /ftw/ruleset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/ruleset.py -------------------------------------------------------------------------------- /ftw/testrunner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/testrunner.py -------------------------------------------------------------------------------- /ftw/util.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util.py -------------------------------------------------------------------------------- /ftw/util/ironbee.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/ironbee.py -------------------------------------------------------------------------------- /ftw/util/output/b00-01-normal.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b00-01-normal.yaml -------------------------------------------------------------------------------- /ftw/util/output/b01-01-query-string.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b01-01-query-string.yaml -------------------------------------------------------------------------------- /ftw/util/output/b02-01-request-hostname-uri.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b02-01-request-hostname-uri.yaml -------------------------------------------------------------------------------- /ftw/util/output/b02-02-request-hostname-header.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b02-02-request-hostname-header.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-01-header.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-01-header.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-02-header-user-agent.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-02-header-user-agent.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-03-header-referer.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-03-header-referer.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-04-header-cookie.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-04-header-cookie.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-05-header-authorization-username.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-05-header-authorization-username.yaml -------------------------------------------------------------------------------- /ftw/util/output/b03-06-header-authorization-password.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b03-06-header-authorization-password.yaml -------------------------------------------------------------------------------- /ftw/util/output/b04-01-request-filename.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b04-01-request-filename.yaml -------------------------------------------------------------------------------- /ftw/util/output/b05-01-request-method.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b05-01-request-method.yaml -------------------------------------------------------------------------------- /ftw/util/output/b06-01-request-protocol.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b06-01-request-protocol.yaml -------------------------------------------------------------------------------- /ftw/util/output/b07-01-trailing-header-cookie.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b07-01-trailing-header-cookie.yaml -------------------------------------------------------------------------------- /ftw/util/output/b08-01-request-body-urlencoded-param-value.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b08-01-request-body-urlencoded-param-value.yaml -------------------------------------------------------------------------------- /ftw/util/output/b08-02-request-body-urlencoded-param-name.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b08-02-request-body-urlencoded-param-name.yaml -------------------------------------------------------------------------------- /ftw/util/output/b09-01-request-body-json.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b09-01-request-body-json.yaml -------------------------------------------------------------------------------- /ftw/util/output/b10-01-multipart-preamble.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b10-01-multipart-preamble.yaml -------------------------------------------------------------------------------- /ftw/util/output/b10-02-multipart-param-name.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b10-02-multipart-param-name.yaml -------------------------------------------------------------------------------- /ftw/util/output/b10-03-multipart-param-filename.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b10-03-multipart-param-filename.yaml -------------------------------------------------------------------------------- /ftw/util/output/b10-04-multipart-file-contents.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b10-04-multipart-file-contents.yaml -------------------------------------------------------------------------------- /ftw/util/output/b10-05-multipart-epilogue.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/b10-05-multipart-epilogue.yaml -------------------------------------------------------------------------------- /ftw/util/output/m00-01-normal.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m00-01-normal.yaml -------------------------------------------------------------------------------- /ftw/util/output/m01-01-invalid-separator.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m01-01-invalid-separator.yaml -------------------------------------------------------------------------------- /ftw/util/output/m01-02-invalid-separator.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m01-02-invalid-separator.yaml -------------------------------------------------------------------------------- /ftw/util/output/m02-01-invalid-parameter-name.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m02-01-invalid-parameter-name.yaml -------------------------------------------------------------------------------- /ftw/util/output/m02-02-invalid-parameter-name.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m02-02-invalid-parameter-name.yaml -------------------------------------------------------------------------------- /ftw/util/output/m03-01-multiple-boundaries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m03-01-multiple-boundaries.yaml -------------------------------------------------------------------------------- /ftw/util/output/m03-02-multiple-boundaries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m03-02-multiple-boundaries.yaml -------------------------------------------------------------------------------- /ftw/util/output/m03-03-multiple-boundaries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m03-03-multiple-boundaries.yaml -------------------------------------------------------------------------------- /ftw/util/output/m03-04-multiple-boundaries.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m03-04-multiple-boundaries.yaml -------------------------------------------------------------------------------- /ftw/util/output/m04-whitespace-after-parameter-name.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m04-whitespace-after-parameter-name.yaml -------------------------------------------------------------------------------- /ftw/util/output/m05-whitespace-before-parameter-value.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m05-whitespace-before-parameter-value.yaml -------------------------------------------------------------------------------- /ftw/util/output/m06-whitespace-after-parameter-value.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m06-whitespace-after-parameter-value.yaml -------------------------------------------------------------------------------- /ftw/util/output/m07-01-special-chars-in-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m07-01-special-chars-in-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m07-02-special-chars-in-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m07-02-special-chars-in-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-01-quoted-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-01-quoted-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-02-whitespace-in-quoted-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-02-whitespace-in-quoted-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-03-whitespace-in-quoted-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-03-whitespace-in-quoted-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-04-quote-in-quoted-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-04-quote-in-quoted-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-05-quote-in-quoted-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-05-quote-in-quoted-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-06-partial-quote.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-06-partial-quote.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-07-partial-quote.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-07-partial-quote.yaml -------------------------------------------------------------------------------- /ftw/util/output/m08-08-whitespace-after-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m08-08-whitespace-after-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m09-data-after-last-boundary.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m09-data-after-last-boundary.yaml -------------------------------------------------------------------------------- /ftw/util/output/m10-boundary-case-sensitivity.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m10-boundary-case-sensitivity.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-01-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-01-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-02-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-02-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-03-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-03-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-04-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-04-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-05-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-05-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-06-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-06-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m11-07-invalid-multipart-type.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m11-07-invalid-multipart-type.yaml -------------------------------------------------------------------------------- /ftw/util/output/m12-01-disposition-multiple-param-names.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m12-01-disposition-multiple-param-names.yaml -------------------------------------------------------------------------------- /ftw/util/output/m12-02-disposition-name-no-quotes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m12-02-disposition-name-no-quotes.yaml -------------------------------------------------------------------------------- /ftw/util/output/m12-03-disposition-name-single-quotes.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m12-03-disposition-name-single-quotes.yaml -------------------------------------------------------------------------------- /ftw/util/output/m12-04-disposition-name-partial-quote.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m12-04-disposition-name-partial-quote.yaml -------------------------------------------------------------------------------- /ftw/util/output/m12-05-disposition-name-partial-quote.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m12-05-disposition-name-partial-quote.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-01-disposition-folding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-01-disposition-folding.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-02-disposition-folding-isspace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-02-disposition-folding-isspace.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-03-disposition-folding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-03-disposition-folding.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-04-disposition-folding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-04-disposition-folding.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-05-disposition-folding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-05-disposition-folding.yaml -------------------------------------------------------------------------------- /ftw/util/output/m13-06-disposition-folding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m13-06-disposition-folding.yaml -------------------------------------------------------------------------------- /ftw/util/output/m14-01-disposition-php-quoting.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m14-01-disposition-php-quoting.yaml -------------------------------------------------------------------------------- /ftw/util/output/m15-01-invalid-part.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m15-01-invalid-part.yaml -------------------------------------------------------------------------------- /ftw/util/output/m16-lf-line-endings.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m16-lf-line-endings.yaml -------------------------------------------------------------------------------- /ftw/util/output/m17-01-first-boundary-lf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m17-01-first-boundary-lf.yaml -------------------------------------------------------------------------------- /ftw/util/output/m17-02-first-boundary-crlf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m17-02-first-boundary-crlf.yaml -------------------------------------------------------------------------------- /ftw/util/output/m18-cr-line.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m18-cr-line.yaml -------------------------------------------------------------------------------- /ftw/util/output/m19-multiple-ct-headers.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/m19-multiple-ct-headers.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-00-baseline.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-00-baseline.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-01-url-encoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-01-url-encoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-02-u-encoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-02-u-encoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-03-utf8-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-03-utf8-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-04-utf8-bare.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-04-utf8-bare.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-05-u-bestfit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-05-u-bestfit.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-06-utf8-bare-bestfit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-06-utf8-bare-bestfit.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-07-utf8-encoded-bestfit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-07-utf8-encoded-bestfit.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-08-invalid-url-encoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-08-invalid-url-encoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-09-invalid-u-encoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-09-invalid-u-encoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-10-valid-invalid-urle-preference.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-10-valid-invalid-urle-preference.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-11-valid-invalid-u-preference.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-11-valid-invalid-u-preference.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-12-NUL-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-12-NUL-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-13-NUL-bare.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-13-NUL-bare.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-14-backslash-separator.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-14-backslash-separator.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-15-forward-slash-separator-url-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-15-forward-slash-separator-url-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-16-forward-slash-separator-u-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-16-forward-slash-separator-u-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-17-backslash-separator-url-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-17-backslash-separator-url-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-18-backslash-separator-u-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-18-backslash-separator-u-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-19-control-chars-encoded.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-19-control-chars-encoded.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-20-control-chars-bare.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-20-control-chars-bare.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-21-utf8-overlong-encoded-2.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-21-utf8-overlong-encoded-2.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-22-utf8-overlong-encoded-3.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-22-utf8-overlong-encoded-3.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-23-utf8-overlong-encoded-4.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-23-utf8-overlong-encoded-4.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-24-utf8-overlong-bare-2.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-24-utf8-overlong-bare-2.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-25-utf8-overlong-bare-3.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-25-utf8-overlong-bare-3.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-26-utf8-overlong-bare-4.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-26-utf8-overlong-bare-4.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-27-utf8-separators-overlong-encoded-2.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-27-utf8-separators-overlong-encoded-2.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-28-utf8-separators-overlong-encoded-3.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-28-utf8-separators-overlong-encoded-3.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-29-utf8-separators-overlong-encoded-4.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-29-utf8-separators-overlong-encoded-4.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-30-utf8-separators-overlong-bare-2.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-30-utf8-separators-overlong-bare-2.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-31-utf8-separators-overlong-bare-3.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-31-utf8-separators-overlong-bare-3.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-32-utf8-separators-overlong-bare-4.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-32-utf8-separators-overlong-bare-4.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-33-u-fullwidth-mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-33-u-fullwidth-mapping.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-34-utf8-invalid-encoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-34-utf8-invalid-encoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-35-utf8-encoded-fullwidth-mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-35-utf8-encoded-fullwidth-mapping.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-36-double-url-decoding.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-36-double-url-decoding.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-37-unicode-normalization.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-37-unicode-normalization.yaml -------------------------------------------------------------------------------- /ftw/util/output/path-38-utf8-bare-fullwidth-mapping.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/output/path-38-utf8-bare-fullwidth-mapping.yaml -------------------------------------------------------------------------------- /ftw/util/public_suffix_list.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/public_suffix_list.dat -------------------------------------------------------------------------------- /ftw/util/request_to_yaml.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/ftw/util/request_to_yaml.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/requirements.txt -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | description_file = README.md 3 | 4 | [tool:pytest] 5 | addopts = -s -v 6 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/setup.py -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/integration/BASICFIXTURE.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/BASICFIXTURE.yaml -------------------------------------------------------------------------------- /test/integration/COOKIEFIXTURE.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/COOKIEFIXTURE.yaml -------------------------------------------------------------------------------- /test/integration/LOGCONTAINSFIXTURE.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/LOGCONTAINSFIXTURE.yaml -------------------------------------------------------------------------------- /test/integration/NOLOGCONTAINSFIXTURE.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/NOLOGCONTAINSFIXTURE.yaml -------------------------------------------------------------------------------- /test/integration/test_cookie.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/test_cookie.py -------------------------------------------------------------------------------- /test/integration/test_http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/test_http.py -------------------------------------------------------------------------------- /test/integration/test_logcontains.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/test_logcontains.py -------------------------------------------------------------------------------- /test/integration/test_nologcontains.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/test_nologcontains.py -------------------------------------------------------------------------------- /test/integration/test_runner.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/integration/test_runner.py -------------------------------------------------------------------------------- /test/test_default.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/test_default.py -------------------------------------------------------------------------------- /test/test_modsecurityv2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/test_modsecurityv2.py -------------------------------------------------------------------------------- /test/unit/test_logchecker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/unit/test_logchecker.py -------------------------------------------------------------------------------- /test/unit/test_response.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/unit/test_response.py -------------------------------------------------------------------------------- /test/unit/test_ruleset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/unit/test_ruleset.py -------------------------------------------------------------------------------- /test/yaml/EXAMPLE.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/test/yaml/EXAMPLE.yaml -------------------------------------------------------------------------------- /tools/build_journal.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coreruleset/ftw/HEAD/tools/build_journal.py --------------------------------------------------------------------------------