
paranoia_level = 3 modsecurity запрещает загрузку непечатаемых символов с помощью полезных нагрузок POST (application/x-www-form-urlencoded) на этапе 2 с использованием правила 920272 owasp crs версии 3.3.4
Однако иногда это срабатывает и для паролей в кодировке UTF-8.
Первая попытка деактивировать правило 920272 сработала:
SecRule REQUEST_URI "/login" \
id:2001,\
phase:2,\
pass,\
nolog,\
ctl:RuleRemoveById=920272"
но он отключает защиту ВСЕХ полей, загруженных с помощью POST.
Цель: деактивировать 920272 только для 2 параметров POST:
- пароль
- скрытый-пароль
Здесь все становится сложнее:
SecRule REQUEST_URI "/login" \
id:2001,\
phase:2,\
pass,\
nolog,\
ctl:RuleRemoveById=920272;ARGS:password"
тоже работает.
Но параметр "hidden-password" содержит дефис. Потребовалось несколько попыток замаскировать дефис, но безуспешно.
Я пытался:
ctl:RuleRemoveById=920272;ARGS:hidden-password"
ctl:RuleRemoveById=920272;ARGS:hidden\-password"
ctl:RuleRemoveById=920272;ARGS:'hidden-password'"
ctl:RuleRemoveById=920272;ARGS:^/hidden-password/"
ctl:RuleRemoveById=920272;ARGS:^/hidden\-password/$"
и, вероятно, еще несколько...
Я получаю следующие ошибки:
"Not a number: password"
или"Expecting an action, got: \-password"
или"Expecting an action, got: 'hidden-password'"
или как-то похоже на одно из сообщений выше.
В соответствии сhttps://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-%28v2.x%29#user-content-ARGS Имя параметра может быть регулярным выражением. Хорошо. Пробовал несколько (см. выше) и не получилось.
Ты знаешь почему ?