
Ein Paranoia-Level von 3 von Modsecurity verbietet das Hochladen nicht druckbarer Zeichen mit POST-Payloads (application/x-www-form-urlencoded) in Phase 2 unter Verwendung der Regel 920272 von OWASP CRS Version 3.3.4.
Manchmal wird es jedoch auch bei UTF-8-codierten Passwörtern ausgelöst.
Erster Versuch Regel 920272 zu deaktivieren funktioniert:
SecRule REQUEST_URI "/login" \
id:2001,\
phase:2,\
pass,\
nolog,\
ctl:RuleRemoveById=920272"
aber es deaktiviert den Schutz ALLER mit POST hochgeladenen Felder.
Ziel: 920272 nur für 2 POST-Parameter deaktivieren:
- Passwort
- verstecktes Passwort
Hier wird es kompliziert:
SecRule REQUEST_URI "/login" \
id:2001,\
phase:2,\
pass,\
nolog,\
ctl:RuleRemoveById=920272;ARGS:password"
funktioniert auch.
Aber ein Parameter „hidden-password“ enthält einen Bindestrich. Es waren mehrere Versuche nötig, den Bindestrich zu maskieren, ohne Erfolg.
Ich habe versucht:
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/$"
und wahrscheinlich noch ein paar mehr ...
Ich erhalte folgende Fehler:
"Not a number: password"
oder"Expecting an action, got: \-password"
oder"Expecting an action, got: 'hidden-password'"
oder irgendwie ähnlich einer der obigen Nachrichten.
Entsprechendhttps://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-%28v2.x%29#user-content-ARGS Der Name eines Parameters kann ein regulärer Ausdruck sein. Ok. Habe mehrere probiert (siehe oben) und es hat nicht geklappt.
Weißt du, warum ?