I agree with Joshua that it's better to do this from within ModSecurity. This 
is because LocationMatch runs AFTER the phase 1 ModSecurity rules so that's the 
only option for adjusting phase 1 rules. Now this particular example is a phase 
2 rule, however so LocationMatch should work but nice to be consistent so you 
don't have to worry about which phase the rule is for.

Joshua's suggestion is also better, as it only removes the request argument 
from the rule checking rather than turning it off completely for all arguments, 
cookies...etc.

Anyway, as it's a phase 2 rule, what you did should work if you wanted to do it 
that way. I suspect the reason it is not working in LocationMatch, is that you 
are removing the rule BEFORE it's been defined in the config:
https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#SecRuleRemoveById
"Note : This directive must be specified after the rule in which it is 
disabling. This should be used within local custom rule files that are 
processed after third party rule sets. Example file - 
modsecurity_crs_60_customrules.conf."
If you load the ModSecurity rules, and then do the LocationMatch it should work 
so check that. Still advise you do it Joshua's way though for the reasons 
given. 

Thanks,
Barry

________________________________
> From: jrob...@gmail.com 
> Date: Sat, 4 Apr 2015 20:49:44 +0000 
> To: ilyassi...@gmail.com; owasp-modsecurity-core-rule-set@lists.owasp.org 
> Subject: Re: [Owasp-modsecurity-core-rule-set] False positives Web services 
> 
> This may be an older way to get the job done, but I typically would 
> whitelist that specific Argument in a rule. 
> 
> 
> SecRule REQUEST_URI "@beginsWith /webservice" 
> "phase:1,t:none,t:lowercase,pass,nolog,ctl:ruleRemoveTargetById=950901;ARGS:request"
>  
> 
> On Sat, Apr 4, 2015 at 1:49 AM Ilyass Kaouam 
> <ilyassi...@gmail.com<mailto:ilyassi...@gmail.com>> wrote: 
> Hi, 
> 
> Wa have this request for a web service : 
> 
> http://www.mywebsite.com/webservice?request=%3Cxmlrequest%3E%3Cheader%3E%3Cutilisateur%3Exxx%3C/utilisateur%3E%3Cmotdepasse%3Exxx%3C/motdepasse%3E%3Crequete%3Esearch%3C/requete%3E%3Clangage%3EFR%3C/langage%3E%3Cpays%3Exx%3C/pays%3E%3C/header%3E%3Cbody%3E%3Cnbrparpage%3Exx%3C/nbrparpage%3E%3Cpage%3E2%3C/page%3E%3Ctyperecherche%3Exx%3C/typerecherche%3E%3C/body%3E%3C/xmlrequest%3E<http://www.mywebsite.com/webservice?request=%3cxmlrequest%3e%3cheader%3e%3cutilisateur%3exxx%3c/utilisateur%3e%3cmotdepasse%3exxx%3c/motdepasse%3e%3crequete%3esearch%3c/requete%3e%3clangage%3eFR%3c/langage%3e%3cpays%3exx%3c/pays%3e%3c/header%3e%3cbody%3e%3cnbrparpage%3exx%3c/nbrparpage%3e%3cpage%3e2%3c/page%3e%3ctyperecherche%3exx%3c/typerecherche%3e%3c/body%3e%3c/xmlrequest%3e>
>  
> 
> 
> ​mod_security forbidden this request log : 
> 
> ​ 
> 
> Message: Access denied with code 403 (phase 2). Pattern match 
> "(?i:([\\s'\"`\xc2\xb4\xe2\x80\x99\xe2\x80\x98\\(\\)]*?)\\b([\\d\\w]++)([\\s'\"`\xc2\xb4\xe2\x80\x99\xe2\x80\x98\\(\\)]*?)(?:(?:=|<=>|r?like|sounds\\s+like|regexp)([\\s'\"`\xc2\xb4\xe2\x80\x99\xe2\x80\x98\\(\\)]*?)\\2\\b|(?:!=|<=|>=|<>|<|>|\\^|is\\s+not
>  
> ..." at ARGS:request. [file 
> "/etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_41_sql_injection_attacks.conf"]
>  
> [line "77"] [id "950901"] [rev "2"] [msg "SQL Injection Attack: SQL 
> Tautology Detected."] [data "Matched Data: utilisateur> 
> 
> ​xxxx 
> found within ARGS:request: <xmlrequest><header><utilisateur> 
> ​xxxx 
> </utilisateur><motdepasse> 
> ​xxxx 
> </motdepasse><requete>search</requete><langage> 
> ​xx 
> </langage><pays> 
> ​xxx 
> </pays></header><body><nbrparpage>10</nbrparpage><page>2</page><typerecherche>
>  
> 
> Action: Intercepted (phase 2) 
> 
> Apache-Handler: proxy-server 
> 
> Stopwatch: 1427968010902873 5141 (- - -) 
> 
> Stopwatch2: 1427968010902873 5141; combined=1880, p1=97, p2=1759, p3=0, 
> p4=0, p5=24, sr=26, sw=0, l=0, gc=0 
> 
> Response-Body-Transformed: Dechunked 
> 
> Producer: ModSecurity for Apache/2.7.3 (http://www.modsecurity.org/); 
> OWASP_CRS/2.2.9.<http://2.2.9.> 
> 
> Server: Apache 
> 
> Engine-Mode: "ENABLED" 
> 
> 
> ​I tired : 
> 
> 
> <LocationMatch /webservice> 
> 
> SecRuleRemoveByID 950901 
> 
> </LocationMatch> ​ 
> 
> 
> ​But I 
> 'm afraid​ 
> ​ its not ​ 
> Safely 
> 
> How I can allow my web services Safely 
> 
> ​ ? 
> 
> Thank you.​ 
> 
> 
> 
> 
> _______________________________________________ 
> Owasp-modsecurity-core-rule-set mailing list 
> Owasp-modsecurity-core-rule-set@lists.owasp.org<mailto:Owasp-modsecurity-core-rule-set@lists.owasp.org>
>  
> https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set 
> 
> _______________________________________________ 
> Owasp-modsecurity-core-rule-set mailing list 
> Owasp-modsecurity-core-rule-set@lists.owasp.org 
> https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set 
                                          
_______________________________________________
Owasp-modsecurity-core-rule-set mailing list
Owasp-modsecurity-core-rule-set@lists.owasp.org
https://lists.owasp.org/mailman/listinfo/owasp-modsecurity-core-rule-set

Reply via email to