mod_security: отключить проверку файлов cookie, вызывающую ложное срабатывание SQLI

Я пытаюсь настроить mod_security на CentOS 7 для apache2.4 с набором правил OWASP. Дело в том, что мое веб-приложение создает файл cookie с символами - и помечается как SQLI. Я прочитал следующую статью о том, как внести в белый список определенную строку cookie в ModSecurity , чтобы попытаться отключить виновный cookie, но мне это не повезло: я все еще получаю 403. Запрещено.

Я пытался добавьте в мой whitelist.conf (в папке modsecurity.d /) следующее правило: SecRuleUpdateTargetByMsg «Обнаружена последовательность комментариев SQL». ! REQUEST_COOKIES: / ^ * Заголовок * (в той же строке c):

Я получаю 403 запрещено, если cookie присутствует. Я попытался создать файл, как указано в статье, и добавил правило в Файл /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_61_customrules.conf по-прежнему ничего: меня блокируют.

Это проблематично, поскольку этот файл cookie является допустимым. Изменился ли способ решения этой проблемы в текущей версии mod_security? Или я все еще что-то не так делаю? Спасибо за вашу помощь.

редактировать:

С правилом для каждого идентификатора, выглядящим следующим образом: SecRuleUpdateTargetById 981172! REQUEST_COOKIES_NAMES: / ^ TitleBox / Он работает

с одним для каждого сообщения следующим образом: SecRuleUpdateTargetByMsg «Обнаружена последовательность комментариев SQL». ! REQUEST_COOKIES_NAMES: / ^ TitleBox Он не работает и по-прежнему блокирует мой файл cookie

1
задан 13 April 2017 в 15:14
1 ответ

Вопрос, на который вы ссылались, был о правиле 981231 белого списка, которое выглядит следующим образом:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "(/\*!?|\*/|[';]--|--[\s\r\n\v\f]|(?:--[^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00)" "phase:2,rev:'2',ver:'OWASP_CRS/2.2.9',maturity:'8',accuracy:'8',\
id:'981231',t:none,t:urlDecodeUni,block,\
msg:'SQL Comment Sequence Detected.'\
,severity:'2',capture,logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',tag:'WASCTC/WASC-19',tag:'OWASP_TOP_10/A1',tag:'OWASP_AppSensor/CIE1',tag:'PCI/6.5.2',setvar:tx.anomaly_score=+%{tx.critical_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/SQL_INJECTION-%{matched_var_name}=%{tx.0}"

Вы пытаетесь добавить 981172 в белый список, который выглядит следующим образом:

SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|REQUEST_COOKIES_NAMES "([\~\!\@\#\$\%\^\&\*\(\)\-\+\=\{\}\[\]\|\:\;\"\'\´\’\‘\`\<\>].*?){8,}" "phase:2,t:none,t:urlDecodeUni,block,\
id:'981172',rev:'2',ver:'OWASP_CRS/2.2.9',maturity:'9',accuracy:'8',\
msg:'Restricted SQL Character Anomaly Detection Alert - Total # of special characters exceeded',\
capture,logdata:'Matched Data: %{TX.1} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',tag:'OWASP_CRS/WEB_ATTACK/SQL_INJECTION',setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:'tx.msg=%{rule.msg}',setvar:tx.%{rule.id}-OWASP_CRS/WEB_ATTACK/RESTRICTED_SQLI_CHARS-%{matched_var_name}=%{tx.0}"

Как видите, сообщение отличается для этого правила, поэтому вы вносите в белый список неправильное сообщение. Следовательно, почему это не работает для вас.

0
ответ дан 4 December 2019 в 05:58

Теги

Похожие вопросы