@@ -600,6 +600,40 @@ SecRule FILES|REQUEST_HEADERS:X-Filename|REQUEST_HEADERS:X_Filename|REQUEST_HEAD
600
600
setvar:'tx.lfi_score=+%{tx.critical_anomaly_score}',\
601
601
setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
602
602
603
+ #
604
+ # -=[ Rule 932200 ]=-
605
+ #
606
+ # Intercept RCE Bypass using uninitialized variables
607
+ # Refer to: https://www.secjuice.com/web-application-firewall-waf-evasion/
608
+ #
609
+ # Examples:
610
+ # - foo;cat$u/etc$u/passwd
611
+ # - bar;cd+/etc;/bin$u/ca*+passwd
612
+ #
613
+ # (remove this line) Regex notes: https://regex101.com/r/JgZFRi/2/
614
+ #
615
+ SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@rx (?:bin|boot|dev|etc|home|lib|media|mnt|opt|proc|root|run|sbin|srv|sys|tmp|usr|var|[a-z]\*|\*[a-z]+)\$[a-zA-Z@]" \
616
+ "id:932200,\
617
+ phase:2,\
618
+ block,\
619
+ capture,\
620
+ t:none,t:lowercase,\
621
+ msg:'RCE Bypass using Uninitialized Variable',\
622
+ logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',\
623
+ tag:'application-multi',\
624
+ tag:'language-multi',\
625
+ tag:'platform-multi',\
626
+ tag:'attack-rce',\
627
+ tag:'OWASP_CRS',\
628
+ tag:'OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION',\
629
+ tag:'WASCTC/WASC-31',\
630
+ tag:'OWASP_TOP_10/A1',\
631
+ tag:'PCI/6.5.2',\
632
+ ver:'OWASP_CRS/3.2.0',\
633
+ severity:'CRITICAL',\
634
+ setvar:'tx.lfi_score=+%{tx.critical_anomaly_score}',\
635
+ setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
636
+
603
637
604
638
SecRule TX:EXECUTING_PARANOIA_LEVEL "@lt 2" "id:932013,phase:1,pass,nolog,skipAfter:END-REQUEST-932-APPLICATION-ATTACK-RCE"
605
639
SecRule TX:EXECUTING_PARANOIA_LEVEL "@lt 2" "id:932014,phase:2,pass,nolog,skipAfter:END-REQUEST-932-APPLICATION-ATTACK-RCE"
0 commit comments