@abtnode/router-provider 1.16.38-beta-20250116-083413-dbd33222 → 1.16.38-beta-20250118-033334-2da05ae8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/nginx/includes/security/crs4/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example +200 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-901-INITIALIZATION.conf +470 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-905-COMMON-EXCEPTIONS.conf +57 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-911-METHOD-ENFORCEMENT.conf +76 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-913-SCANNER-DETECTION.conf +86 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf +1915 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-921-PROTOCOL-ATTACK.conf +558 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-922-MULTIPART-ATTACK.conf +120 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf +203 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf +189 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf +1875 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf +774 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-934-APPLICATION-ATTACK-GENERIC.conf +366 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf +1071 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf +1978 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf +132 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-944-APPLICATION-ATTACK-JAVA.conf +463 -0
- package/lib/nginx/includes/security/crs4/rules/REQUEST-949-BLOCKING-EVALUATION.conf +270 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-950-DATA-LEAKAGES.conf +156 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf +417 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf +108 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf +158 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf +152 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-955-WEB-SHELLS.conf +558 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-959-BLOCKING-EVALUATION.conf +280 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-980-CORRELATION.conf +138 -0
- package/lib/nginx/includes/security/crs4/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example +76 -0
- package/lib/nginx/includes/security/crs4/rules/iis-errors.data +59 -0
- package/lib/nginx/includes/security/crs4/rules/java-classes.data +64 -0
- package/lib/nginx/includes/security/crs4/rules/java-code-leakages.data +17 -0
- package/lib/nginx/includes/security/crs4/rules/java-errors.data +10 -0
- package/lib/nginx/includes/security/crs4/rules/lfi-os-files.data +722 -0
- package/lib/nginx/includes/security/crs4/rules/php-config-directives.data +571 -0
- package/lib/nginx/includes/security/crs4/rules/php-errors-pl2.data +7 -0
- package/lib/nginx/includes/security/crs4/rules/php-errors.data +2147 -0
- package/lib/nginx/includes/security/crs4/rules/php-function-names-933150.data +245 -0
- package/lib/nginx/includes/security/crs4/rules/php-function-names-933151.data +2201 -0
- package/lib/nginx/includes/security/crs4/rules/php-variables.data +30 -0
- package/lib/nginx/includes/security/crs4/rules/restricted-files.data +284 -0
- package/lib/nginx/includes/security/crs4/rules/restricted-upload.data +177 -0
- package/lib/nginx/includes/security/crs4/rules/scanners-user-agents.data +119 -0
- package/lib/nginx/includes/security/crs4/rules/sql-errors.data +172 -0
- package/lib/nginx/includes/security/crs4/rules/ssrf.data +177 -0
- package/lib/nginx/includes/security/crs4/rules/unix-shell.data +670 -0
- package/lib/nginx/includes/security/crs4/rules/web-shells-php.data +167 -0
- package/lib/nginx/includes/security/crs4/rules/windows-powershell-commands.data +425 -0
- package/lib/nginx/includes/security/unicode.mapping +96 -0
- package/lib/nginx/index.js +50 -3
- package/lib/nginx/templates/security/crs4/crs-setup.conf.js +857 -0
- package/lib/nginx/templates/security/modsecurity.conf.js +244 -0
- package/package.json +7 -6
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# ------------------------------------------------------------------------
|
|
2
|
+
# OWASP CRS ver.4.9.0
|
|
3
|
+
# Copyright (c) 2006-2020 Trustwave and contributors. All rights reserved.
|
|
4
|
+
# Copyright (c) 2021-2024 CRS project. All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# The OWASP CRS is distributed under
|
|
7
|
+
# Apache Software License (ASL) version 2
|
|
8
|
+
# Please see the enclosed LICENSE file for full details.
|
|
9
|
+
# ------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
# You should set the score to the proper threshold you would prefer. If kept at "@gt 0"
|
|
12
|
+
# it will work similarly to previous Mod CRS rules and will create an event in the error_log
|
|
13
|
+
# file if there are any rules that match. If you would like to lessen the number of events
|
|
14
|
+
# generated in the error_log file, you should increase the anomaly score threshold to
|
|
15
|
+
# something like "@gt 20". This would only generate an event in the error_log file if
|
|
16
|
+
# there are multiple lower severity rule matches or if any 1 higher severity item matches.
|
|
17
|
+
#
|
|
18
|
+
# You should also set the desired disruptive action (deny, redirect, etc...).
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# -= Paranoia Level 0 (empty) =- (apply unconditionally)
|
|
23
|
+
#
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# Summing up the blocking and detection anomaly scores in phase 3
|
|
27
|
+
# even when early blocking is disabled, we need to sum up the scores in phase 3
|
|
28
|
+
# this prevents bugs in phase 5 if Apache skips phases because of error handling
|
|
29
|
+
# See: https://github.com/coreruleset/coreruleset/issues/2319#issuecomment-1047503932
|
|
30
|
+
|
|
31
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 1" \
|
|
32
|
+
"id:959052,\
|
|
33
|
+
phase:3,\
|
|
34
|
+
pass,\
|
|
35
|
+
t:none,\
|
|
36
|
+
nolog,\
|
|
37
|
+
tag:'OWASP_CRS',\
|
|
38
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
39
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl1}'"
|
|
40
|
+
|
|
41
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 1" \
|
|
42
|
+
"id:959152,\
|
|
43
|
+
phase:3,\
|
|
44
|
+
pass,\
|
|
45
|
+
t:none,\
|
|
46
|
+
nolog,\
|
|
47
|
+
tag:'OWASP_CRS',\
|
|
48
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
49
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl1}'"
|
|
50
|
+
|
|
51
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 2" \
|
|
52
|
+
"id:959053,\
|
|
53
|
+
phase:3,\
|
|
54
|
+
pass,\
|
|
55
|
+
t:none,\
|
|
56
|
+
nolog,\
|
|
57
|
+
tag:'OWASP_CRS',\
|
|
58
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
59
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl2}'"
|
|
60
|
+
|
|
61
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 2" \
|
|
62
|
+
"id:959153,\
|
|
63
|
+
phase:3,\
|
|
64
|
+
pass,\
|
|
65
|
+
t:none,\
|
|
66
|
+
nolog,\
|
|
67
|
+
tag:'OWASP_CRS',\
|
|
68
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
69
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl2}'"
|
|
70
|
+
|
|
71
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 3" \
|
|
72
|
+
"id:959054,\
|
|
73
|
+
phase:3,\
|
|
74
|
+
pass,\
|
|
75
|
+
t:none,\
|
|
76
|
+
nolog,\
|
|
77
|
+
tag:'OWASP_CRS',\
|
|
78
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
79
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl3}'"
|
|
80
|
+
|
|
81
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 3" \
|
|
82
|
+
"id:959154,\
|
|
83
|
+
phase:3,\
|
|
84
|
+
pass,\
|
|
85
|
+
t:none,\
|
|
86
|
+
nolog,\
|
|
87
|
+
tag:'OWASP_CRS',\
|
|
88
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
89
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl3}'"
|
|
90
|
+
|
|
91
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 4" \
|
|
92
|
+
"id:959055,\
|
|
93
|
+
phase:3,\
|
|
94
|
+
pass,\
|
|
95
|
+
t:none,\
|
|
96
|
+
nolog,\
|
|
97
|
+
tag:'OWASP_CRS',\
|
|
98
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
99
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl4}'"
|
|
100
|
+
|
|
101
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 4" \
|
|
102
|
+
"id:959155,\
|
|
103
|
+
phase:3,\
|
|
104
|
+
pass,\
|
|
105
|
+
t:none,\
|
|
106
|
+
nolog,\
|
|
107
|
+
tag:'OWASP_CRS',\
|
|
108
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
109
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl4}'"
|
|
110
|
+
|
|
111
|
+
# at start of phase 4, we reset the aggregate scores to 0 to prevent duplicate counting of per-PL scores
|
|
112
|
+
# this is necessary because the per-PL scores are counted across phases
|
|
113
|
+
SecAction \
|
|
114
|
+
"id:959059,\
|
|
115
|
+
phase:4,\
|
|
116
|
+
pass,\
|
|
117
|
+
t:none,\
|
|
118
|
+
nolog,\
|
|
119
|
+
tag:'OWASP_CRS',\
|
|
120
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
121
|
+
setvar:'tx.blocking_outbound_anomaly_score=0'"
|
|
122
|
+
|
|
123
|
+
SecAction \
|
|
124
|
+
"id:959159,\
|
|
125
|
+
phase:4,\
|
|
126
|
+
pass,\
|
|
127
|
+
t:none,\
|
|
128
|
+
nolog,\
|
|
129
|
+
tag:'OWASP_CRS',\
|
|
130
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
131
|
+
setvar:'tx.detection_outbound_anomaly_score=0'"
|
|
132
|
+
|
|
133
|
+
SecMarker "EARLY_BLOCKING_ANOMALY_SCORING"
|
|
134
|
+
|
|
135
|
+
# Summing up the blocking and detection anomaly scores in phase 4
|
|
136
|
+
|
|
137
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 1" \
|
|
138
|
+
"id:959060,\
|
|
139
|
+
phase:4,\
|
|
140
|
+
pass,\
|
|
141
|
+
t:none,\
|
|
142
|
+
nolog,\
|
|
143
|
+
tag:'OWASP_CRS',\
|
|
144
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
145
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl1}'"
|
|
146
|
+
|
|
147
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 1" \
|
|
148
|
+
"id:959160,\
|
|
149
|
+
phase:4,\
|
|
150
|
+
pass,\
|
|
151
|
+
t:none,\
|
|
152
|
+
nolog,\
|
|
153
|
+
tag:'OWASP_CRS',\
|
|
154
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
155
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl1}'"
|
|
156
|
+
|
|
157
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 2" \
|
|
158
|
+
"id:959061,\
|
|
159
|
+
phase:4,\
|
|
160
|
+
pass,\
|
|
161
|
+
t:none,\
|
|
162
|
+
nolog,\
|
|
163
|
+
tag:'OWASP_CRS',\
|
|
164
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
165
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl2}'"
|
|
166
|
+
|
|
167
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 2" \
|
|
168
|
+
"id:959161,\
|
|
169
|
+
phase:4,\
|
|
170
|
+
pass,\
|
|
171
|
+
t:none,\
|
|
172
|
+
nolog,\
|
|
173
|
+
tag:'OWASP_CRS',\
|
|
174
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
175
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl2}'"
|
|
176
|
+
|
|
177
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 3" \
|
|
178
|
+
"id:959062,\
|
|
179
|
+
phase:4,\
|
|
180
|
+
pass,\
|
|
181
|
+
t:none,\
|
|
182
|
+
nolog,\
|
|
183
|
+
tag:'OWASP_CRS',\
|
|
184
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
185
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl3}'"
|
|
186
|
+
|
|
187
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 3" \
|
|
188
|
+
"id:959162,\
|
|
189
|
+
phase:4,\
|
|
190
|
+
pass,\
|
|
191
|
+
t:none,\
|
|
192
|
+
nolog,\
|
|
193
|
+
tag:'OWASP_CRS',\
|
|
194
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
195
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl3}'"
|
|
196
|
+
|
|
197
|
+
SecRule TX:BLOCKING_PARANOIA_LEVEL "@ge 4" \
|
|
198
|
+
"id:959063,\
|
|
199
|
+
phase:4,\
|
|
200
|
+
pass,\
|
|
201
|
+
t:none,\
|
|
202
|
+
nolog,\
|
|
203
|
+
tag:'OWASP_CRS',\
|
|
204
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
205
|
+
setvar:'tx.blocking_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl4}'"
|
|
206
|
+
|
|
207
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@ge 4" \
|
|
208
|
+
"id:959163,\
|
|
209
|
+
phase:4,\
|
|
210
|
+
pass,\
|
|
211
|
+
t:none,\
|
|
212
|
+
nolog,\
|
|
213
|
+
tag:'OWASP_CRS',\
|
|
214
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
215
|
+
setvar:'tx.detection_outbound_anomaly_score=+%{tx.outbound_anomaly_score_pl4}'"
|
|
216
|
+
|
|
217
|
+
#
|
|
218
|
+
# -=[ Anomaly Mode: Overall Transaction Anomaly Score ]=-
|
|
219
|
+
#
|
|
220
|
+
|
|
221
|
+
# if early blocking is active, check threshold in phase 3
|
|
222
|
+
SecRule TX:BLOCKING_OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_threshold}" \
|
|
223
|
+
"id:959101,\
|
|
224
|
+
phase:3,\
|
|
225
|
+
deny,\
|
|
226
|
+
t:none,\
|
|
227
|
+
msg:'Outbound Anomaly Score Exceeded in phase 3 (Total Score: %{tx.blocking_outbound_anomaly_score})',\
|
|
228
|
+
tag:'anomaly-evaluation',\
|
|
229
|
+
tag:'OWASP_CRS',\
|
|
230
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
231
|
+
chain"
|
|
232
|
+
SecRule TX:EARLY_BLOCKING "@eq 1"
|
|
233
|
+
|
|
234
|
+
# always check threshold in phase 4
|
|
235
|
+
SecRule TX:BLOCKING_OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_threshold}" \
|
|
236
|
+
"id:959100,\
|
|
237
|
+
phase:4,\
|
|
238
|
+
deny,\
|
|
239
|
+
t:none,\
|
|
240
|
+
msg:'Outbound Anomaly Score Exceeded (Total Score: %{tx.blocking_outbound_anomaly_score})',\
|
|
241
|
+
tag:'anomaly-evaluation',\
|
|
242
|
+
tag:'OWASP_CRS',\
|
|
243
|
+
ver:'OWASP_CRS/4.9.0'"
|
|
244
|
+
|
|
245
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:959011,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
246
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:959012,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
247
|
+
#
|
|
248
|
+
# -= Paranoia Level 1 (default) =- (apply only when tx.detection_paranoia_level is sufficiently high: 1 or higher)
|
|
249
|
+
#
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:959013,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
254
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:959014,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
255
|
+
#
|
|
256
|
+
# -= Paranoia Level 2 =- (apply only when tx.detection_paranoia_level is sufficiently high: 2 or higher)
|
|
257
|
+
#
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:959015,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
262
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:959016,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
263
|
+
#
|
|
264
|
+
# -= Paranoia Level 3 =- (apply only when tx.detection_paranoia_level is sufficiently high: 3 or higher)
|
|
265
|
+
#
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:959017,phase:3,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
270
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:959018,phase:4,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
271
|
+
#
|
|
272
|
+
# -= Paranoia Level 4 =- (apply only when tx.detection_paranoia_level is sufficiently high: 4 or higher)
|
|
273
|
+
#
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
#
|
|
278
|
+
# -= Paranoia Levels Finished =-
|
|
279
|
+
#
|
|
280
|
+
SecMarker "END-RESPONSE-959-BLOCKING-EVALUATION"
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# ------------------------------------------------------------------------
|
|
2
|
+
# OWASP CRS ver.4.9.0
|
|
3
|
+
# Copyright (c) 2006-2020 Trustwave and contributors. All rights reserved.
|
|
4
|
+
# Copyright (c) 2021-2024 CRS project. All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# The OWASP CRS is distributed under
|
|
7
|
+
# Apache Software License (ASL) version 2
|
|
8
|
+
# Please see the enclosed LICENSE file for full details.
|
|
9
|
+
# ------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# This file is used in post processing after the response has been sent to
|
|
13
|
+
# the client (in the logging phase). Its purpose is to provide inbound+outbound
|
|
14
|
+
# correlation of events to provide a more intelligent designation as to the outcome
|
|
15
|
+
# or result of the transaction - meaning, was this a successful attack?
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
#
|
|
19
|
+
# -= Paranoia Level 0 (empty) =- (apply unconditionally)
|
|
20
|
+
#
|
|
21
|
+
|
|
22
|
+
# Combine inbound and outbound scores
|
|
23
|
+
SecAction \
|
|
24
|
+
"id:980099,\
|
|
25
|
+
phase:5,\
|
|
26
|
+
pass,\
|
|
27
|
+
t:none,\
|
|
28
|
+
nolog,\
|
|
29
|
+
noauditlog,\
|
|
30
|
+
tag:'OWASP_CRS',\
|
|
31
|
+
ver:'OWASP_CRS/4.9.0',\
|
|
32
|
+
setvar:'tx.blocking_anomaly_score=%{tx.blocking_inbound_anomaly_score}',\
|
|
33
|
+
setvar:'tx.blocking_anomaly_score=+%{tx.blocking_outbound_anomaly_score}',\
|
|
34
|
+
setvar:'tx.detection_anomaly_score=%{tx.detection_inbound_anomaly_score}',\
|
|
35
|
+
setvar:'tx.detection_anomaly_score=+%{tx.detection_outbound_anomaly_score}',\
|
|
36
|
+
setvar:'tx.anomaly_score=%{tx.blocking_inbound_anomaly_score}',\
|
|
37
|
+
setvar:'tx.anomaly_score=+%{tx.blocking_outbound_anomaly_score}'"
|
|
38
|
+
|
|
39
|
+
#
|
|
40
|
+
# -=[ Anomaly Score Reporting ]=-
|
|
41
|
+
#
|
|
42
|
+
|
|
43
|
+
# -= Reporting Level 0 =- (Skip over reporting when tx.reporting_level is 0)
|
|
44
|
+
SecRule TX:REPORTING_LEVEL "@eq 0" "id:980041,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-REPORTING"
|
|
45
|
+
|
|
46
|
+
# -= Reporting Level 5 =- (Jump to reporting rule immediately when tx.reporting_level is 5 or greater)
|
|
47
|
+
SecRule TX:REPORTING_LEVEL "@ge 5" "id:980042,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
48
|
+
|
|
49
|
+
# -= Zero detection score =- (Skip over reporting when sum of inbound and outbound detection score is equal to 0)
|
|
50
|
+
SecRule TX:DETECTION_ANOMALY_SCORE "@eq 0" "id:980043,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-REPORTING"
|
|
51
|
+
|
|
52
|
+
# -= Blocking score exceeds threshold =- (Jump to reporting rule immediately if a blocking score exceeds a threshold)
|
|
53
|
+
SecRule TX:BLOCKING_INBOUND_ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_threshold}" "id:980044,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
54
|
+
SecRule TX:BLOCKING_OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_threshold}" "id:980045,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
55
|
+
|
|
56
|
+
# -= Reporting Level 2 =- (Skip over reporting when tx.reporting_level is less than 2)
|
|
57
|
+
SecRule TX:REPORTING_LEVEL "@lt 2" "id:980046,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-REPORTING"
|
|
58
|
+
|
|
59
|
+
# -= Detection score exceeds threshold =- (Jump to reporting rule immediately if a detection score exceeds a threshold)
|
|
60
|
+
SecRule TX:DETECTION_INBOUND_ANOMALY_SCORE "@ge %{tx.inbound_anomaly_score_threshold}" "id:980047,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
61
|
+
SecRule TX:DETECTION_OUTBOUND_ANOMALY_SCORE "@ge %{tx.outbound_anomaly_score_threshold}" "id:980048,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
62
|
+
|
|
63
|
+
# -= Reporting Level 3 =- (Skip over reporting when tx.reporting_level is less than 3)
|
|
64
|
+
SecRule TX:REPORTING_LEVEL "@lt 3" "id:980049,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-REPORTING"
|
|
65
|
+
|
|
66
|
+
# -= Blocking score greater than zero =- (Jump to reporting rule immediately when sum of inbound and outbound blocking score is greater than zero)
|
|
67
|
+
SecRule TX:BLOCKING_ANOMALY_SCORE "@gt 0" "id:980050,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:LOG-REPORTING"
|
|
68
|
+
|
|
69
|
+
# -= Reporting Level 4 =- (Skip over reporting when tx.reporting_level is less than 4)
|
|
70
|
+
SecRule TX:REPORTING_LEVEL "@lt 4" "id:980051,phase:5,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-REPORTING"
|
|
71
|
+
|
|
72
|
+
# At this point, the reporting level is 4 and there's a non-zero detection
|
|
73
|
+
# score (already established by rule 980043) so fall through to the reporting
|
|
74
|
+
# rule.
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
# Requests that land on the following SecMarker:
|
|
78
|
+
# - At reporting level 5 (unconditional reporting)
|
|
79
|
+
# - At reporting levels 1-4 when a blocking score exceeds a threshold
|
|
80
|
+
# - At reporting levels 2-4 when a detection score exceeds a threshold
|
|
81
|
+
# - At reporting levels 3-4 when the total blocking score is greater than zero
|
|
82
|
+
# - At reporting level 4 when the total detection score is greater than zero
|
|
83
|
+
SecMarker "LOG-REPORTING"
|
|
84
|
+
|
|
85
|
+
# Inbound and outbound - all requests
|
|
86
|
+
SecAction \
|
|
87
|
+
"id:980170,\
|
|
88
|
+
phase:5,\
|
|
89
|
+
pass,\
|
|
90
|
+
t:none,\
|
|
91
|
+
noauditlog,\
|
|
92
|
+
msg:'Anomaly Scores: \
|
|
93
|
+
(Inbound Scores: blocking=%{tx.blocking_inbound_anomaly_score}, detection=%{tx.detection_inbound_anomaly_score}, per_pl=%{tx.inbound_anomaly_score_pl1}-%{tx.inbound_anomaly_score_pl2}-%{tx.inbound_anomaly_score_pl3}-%{tx.inbound_anomaly_score_pl4}, threshold=%{tx.inbound_anomaly_score_threshold}) - \
|
|
94
|
+
(Outbound Scores: blocking=%{tx.blocking_outbound_anomaly_score}, detection=%{tx.detection_outbound_anomaly_score}, per_pl=%{tx.outbound_anomaly_score_pl1}-%{tx.outbound_anomaly_score_pl2}-%{tx.outbound_anomaly_score_pl3}-%{tx.outbound_anomaly_score_pl4}, threshold=%{tx.outbound_anomaly_score_threshold}) - \
|
|
95
|
+
(SQLI=%{tx.sql_injection_score}, XSS=%{tx.xss_score}, RFI=%{tx.rfi_score}, LFI=%{tx.lfi_score}, RCE=%{tx.rce_score}, PHPI=%{tx.php_injection_score}, HTTP=%{tx.http_violation_score}, SESS=%{tx.session_fixation_score}, COMBINED_SCORE=%{tx.anomaly_score})',\
|
|
96
|
+
tag:'reporting',\
|
|
97
|
+
tag:'OWASP_CRS',\
|
|
98
|
+
ver:'OWASP_CRS/4.9.0'"
|
|
99
|
+
|
|
100
|
+
SecMarker "END-REPORTING"
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:980011,phase:1,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
104
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 1" "id:980012,phase:2,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
105
|
+
#
|
|
106
|
+
# -= Paranoia Level 1 (default) =- (apply only when tx.detection_paranoia_level is sufficiently high: 1 or higher)
|
|
107
|
+
#
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:980013,phase:1,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
112
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 2" "id:980014,phase:2,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
113
|
+
#
|
|
114
|
+
# -= Paranoia Level 2 =- (apply only when tx.detection_paranoia_level is sufficiently high: 2 or higher)
|
|
115
|
+
#
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:980015,phase:1,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
120
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 3" "id:980016,phase:2,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
121
|
+
#
|
|
122
|
+
# -= Paranoia Level 3 =- (apply only when tx.detection_paranoia_level is sufficiently high: 3 or higher)
|
|
123
|
+
#
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:980017,phase:1,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
128
|
+
SecRule TX:DETECTION_PARANOIA_LEVEL "@lt 4" "id:980018,phase:2,pass,nolog,tag:'OWASP_CRS',ver:'OWASP_CRS/4.9.0',skipAfter:END-RESPONSE-980-CORRELATION"
|
|
129
|
+
#
|
|
130
|
+
# -= Paranoia Level 4 =- (apply only when tx.detection_paranoia_level is sufficiently high: 4 or higher)
|
|
131
|
+
#
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
#
|
|
136
|
+
# -= Paranoia Levels Finished =-
|
|
137
|
+
#
|
|
138
|
+
SecMarker "END-RESPONSE-980-CORRELATION"
|
package/lib/nginx/includes/security/crs4/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# ------------------------------------------------------------------------
|
|
2
|
+
# OWASP CRS ver.4.9.0
|
|
3
|
+
# Copyright (c) 2006-2020 Trustwave and contributors. All rights reserved.
|
|
4
|
+
# Copyright (c) 2021-2024 CRS project. All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# The OWASP CRS is distributed under
|
|
7
|
+
# Apache Software License (ASL) version 2
|
|
8
|
+
# Please see the enclosed LICENSE file for full details.
|
|
9
|
+
# ------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# The purpose of this file is to hold LOCAL exceptions for your site.
|
|
13
|
+
# The types of rules that would go into this file are one where you want
|
|
14
|
+
# to unconditionally disable rules or modify their actions during startup.
|
|
15
|
+
#
|
|
16
|
+
# Please see the file REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example
|
|
17
|
+
# for a description of the rule exclusions mechanism and the correct
|
|
18
|
+
# use of this file.
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# Example Exclusion Rule: To unconditionally disable a rule ID
|
|
23
|
+
#
|
|
24
|
+
# ModSecurity Rule Exclusion: 942100 SQL Injection Detected via libinjection
|
|
25
|
+
# SecRuleRemoveById 942100
|
|
26
|
+
|
|
27
|
+
# Example Exclusion Rule: Remove a group of rules
|
|
28
|
+
#
|
|
29
|
+
# ModSecurity Rule Exclusion: Disable PHP injection rules
|
|
30
|
+
# SecRuleRemoveByTag "attack-injection-php"
|
|
31
|
+
|
|
32
|
+
#
|
|
33
|
+
# Example Exclusion Rule: To unconditionally remove parameter "foo" from
|
|
34
|
+
# inspection for SQLi rules
|
|
35
|
+
#
|
|
36
|
+
# ModSecurity Rule Exclusion: disable sqli rules for parameter foo.
|
|
37
|
+
# SecRuleUpdateTargetByTag "attack-sqli" "!ARGS:foo"
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# -- [[ Changing the Disruptive Action for Anomaly Mode ]] --
|
|
41
|
+
#
|
|
42
|
+
# In Anomaly Mode (default in CRS3), the rules in REQUEST-949-BLOCKING-EVALUATION.conf
|
|
43
|
+
# and RESPONSE-959-BLOCKING-EVALUATION.conf check the accumulated attack scores
|
|
44
|
+
# against your policy. To apply a disruptive action, they overwrite the default
|
|
45
|
+
# actions specified in SecDefaultAction (setup.conf) with a 'deny' action.
|
|
46
|
+
# This 'deny' is by default paired with a 'status:403' action.
|
|
47
|
+
#
|
|
48
|
+
# In order to change the disruptive action from 'deny' to something else,
|
|
49
|
+
# you must use SecRuleUpdateActionByID directives AFTER the CRS rules
|
|
50
|
+
# are configured, for instance in the RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf file.
|
|
51
|
+
#
|
|
52
|
+
# These actions only apply when using Anomaly Mode.
|
|
53
|
+
#
|
|
54
|
+
# Default action: block with error 403
|
|
55
|
+
# (No configuration needed in this file if you want the default behavior.)
|
|
56
|
+
#
|
|
57
|
+
|
|
58
|
+
# Example: redirect back to the homepage on blocking
|
|
59
|
+
#
|
|
60
|
+
# SecRuleUpdateActionById 949110 "t:none,redirect:'http://%{request_headers.host}/'"
|
|
61
|
+
# SecRuleUpdateActionById 959100 "t:none,redirect:'http://%{request_headers.host}/'"
|
|
62
|
+
|
|
63
|
+
# Example: redirect to another URL on blocking
|
|
64
|
+
#
|
|
65
|
+
# SecRuleUpdateActionById 949110 "t:none,redirect:'http://example.com/report_problem'"
|
|
66
|
+
# SecRuleUpdateActionById 959100 "t:none,redirect:'http://example.com/report_problem'"
|
|
67
|
+
|
|
68
|
+
# Example: send an error 404
|
|
69
|
+
#
|
|
70
|
+
# SecRuleUpdateActionById 949110 "t:none,deny,status:404"
|
|
71
|
+
# SecRuleUpdateActionById 959100 "t:none,deny,status:404"
|
|
72
|
+
|
|
73
|
+
# Example: drop the connection (best for DoS attacks)
|
|
74
|
+
#
|
|
75
|
+
# SecRuleUpdateActionById 949110 "t:none,drop"
|
|
76
|
+
# SecRuleUpdateActionById 959100 "t:none,drop"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# This list comes from the default IIS error pages
|
|
2
|
+
# To renerate get the files from a default installation and use:
|
|
3
|
+
# grep -h '<title' *.htm
|
|
4
|
+
|
|
5
|
+
<title>401.1 - Unauthorized: Access is denied due to invalid credentials.</title>
|
|
6
|
+
<title>401.2 - Unauthorized: Access is denied due to server configuration.</title>
|
|
7
|
+
<title>401.3 - Unauthorized: Access is denied due to an ACL set on the requested resource.</title>
|
|
8
|
+
<title>401.4 - Unauthorized: Authorization failed by filter installed on the Web server.</title>
|
|
9
|
+
<title>401.5 - Unauthorized: Authorization failed by an ISAPI/CGI application.</title>
|
|
10
|
+
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
|
|
11
|
+
<title>403.1 - Forbidden: Execute access is denied.</title>
|
|
12
|
+
<title>403.10 - Forbidden: Web server is configured to deny Execute access.</title>
|
|
13
|
+
<title>403.11 - Forbidden: Password has been changed.</title>
|
|
14
|
+
<title>403.12 - Forbidden: Client certificate is denied access by the server certificate mapper.</title>
|
|
15
|
+
<title>403.13 - Forbidden: Client certificate has been revoked on the Web server.</title>
|
|
16
|
+
<title>403.14 - Forbidden: Directory listing denied.</title>
|
|
17
|
+
<title>403.15 - Forbidden: Client access licenses have exceeded limits on the Web server.</title>
|
|
18
|
+
<title>403.16 - Forbidden: Client certificate is ill-formed or is not trusted by the Web server.</title>
|
|
19
|
+
<title>403.17 - Forbidden: Client certificate has expired or is not yet valid.</title>
|
|
20
|
+
<title>403.18 - Forbidden: Cannot execute requested URL in the current application pool.</title>
|
|
21
|
+
<title>403.19 - Forbidden: Cannot execute CGIs for the client in this application pool.</title>
|
|
22
|
+
<title>403.2 - Forbidden: Read access is denied.</title>
|
|
23
|
+
<title>403.3 - Forbidden: Write access is denied.</title>
|
|
24
|
+
<title>403.4 - Forbidden: SSL is required to view this resource.</title>
|
|
25
|
+
<title>403.5 - Forbidden: SSL 128 is required to view this resource.</title>
|
|
26
|
+
<title>403.6 - Forbidden: IP address of the client has been rejected.</title>
|
|
27
|
+
<title>403.7 - Forbidden: SSL client certificate is required.</title>
|
|
28
|
+
<title>403.8 - Forbidden: DNS name of the client is rejected.</title>
|
|
29
|
+
<title>403.9 - Forbidden: Too many clients are trying to connect to the Web server.</title>
|
|
30
|
+
<title>403 - Forbidden: Access is denied.</title>
|
|
31
|
+
<title>404.1 - File or directory not found: Web site not accessible on the requested port.</title>
|
|
32
|
+
<title>404.11 - URL is double-escaped.</title>
|
|
33
|
+
<title>404.12 - URL has high bit characters.</title>
|
|
34
|
+
<title>404.14 - URL too long.</title>
|
|
35
|
+
<title>404.15 - Query-String too long.</title>
|
|
36
|
+
<title>404.2 - File or directory not found: Lockdown policy prevents this request.</title>
|
|
37
|
+
<title>404.3 - File or directory not found: MIME map policy prevents this request.</title>
|
|
38
|
+
<title>404.4 - File or directory not found: No module handler is registered to handle the request.</title>
|
|
39
|
+
<title>404.5 - URL sequence denied.</title>
|
|
40
|
+
<title>404.6 - HTTP verb denied.</title>
|
|
41
|
+
<title>404.7 - File extension denied.</title>
|
|
42
|
+
<title>404.8 - URL namespace hidden.</title>
|
|
43
|
+
<title>404.9 - File attribute hidden.</title>
|
|
44
|
+
<title>404 - File or directory not found.</title>
|
|
45
|
+
<title>405 - HTTP verb used to access this page is not allowed.</title>
|
|
46
|
+
<title>406 - Client browser does not accept the MIME type of the requested page.</title>
|
|
47
|
+
<title>412 - Precondition set by the client failed when evaluated on the Web server.</title>
|
|
48
|
+
<title>413.1 - Content-Length too large.</title>
|
|
49
|
+
<title>431 - Request header too long.</title>
|
|
50
|
+
<title>500.13 - Server error: Web server is too busy.</title>
|
|
51
|
+
<title>500.14 - Server error: Invalid application configuration on the server.</title>
|
|
52
|
+
<title>500.15 - Server error: Direct requests for GLOBAL.ASA are not allowed.</title>
|
|
53
|
+
<title>500.16 - Server error: UNC authorization credentials incorrect.</title>
|
|
54
|
+
<title>500.17 - Server error: URL authorization store cannot be found.</title>
|
|
55
|
+
<title>500.18 - Server error: URL authorization store cannot be opened.</title>
|
|
56
|
+
<title>500.19 - Server error: Data for this file is configured improperly.</title>
|
|
57
|
+
<title>500 - Internal server error.</title>
|
|
58
|
+
<title>501 - Header values specify a method that is not implemented.</title>
|
|
59
|
+
<title>502 - Web server received an invalid response while acting as a gateway or proxy server.</title>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Java Classes for use with Java RCEs
|
|
2
|
+
#
|
|
3
|
+
# Used With Rule 944130 in Apache Struts and Oracle Weblogic RCEs Detection:
|
|
4
|
+
#
|
|
5
|
+
# CVE-2017-5638 (2017.01.29) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5638
|
|
6
|
+
# CVE-2017-9791 (2017.06.21) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9791
|
|
7
|
+
# CVE-2017-9805 (2017.06.21) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9805
|
|
8
|
+
# CVE-2017-10271 (2017.06.21) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-10271
|
|
9
|
+
# CVE-2018-11776 (2018.06.05) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-11776
|
|
10
|
+
# CVE-2021-44228 (2021.11.26) https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228
|
|
11
|
+
#
|
|
12
|
+
# Additional Resources
|
|
13
|
+
# Apache S2-057 (2019.01.20) https://cwiki.apache.org/confluence/display/WW/S2-057
|
|
14
|
+
|
|
15
|
+
com.opensymphony.xwork2
|
|
16
|
+
com.sun.org.apache
|
|
17
|
+
freemarker.core
|
|
18
|
+
freemarker.template
|
|
19
|
+
freemarker.ext.rhino
|
|
20
|
+
java.io.BufferedInputStream
|
|
21
|
+
java.io.BufferedReader
|
|
22
|
+
java.io.ByteArrayInputStream
|
|
23
|
+
java.io.ByteArrayOutputStream
|
|
24
|
+
java.io.CharArrayReader
|
|
25
|
+
java.io.DataInputStream
|
|
26
|
+
java.io.File
|
|
27
|
+
java.io.FileOutputStream
|
|
28
|
+
java.io.FilePermission
|
|
29
|
+
java.io.FileWriter
|
|
30
|
+
java.io.FilterInputStream
|
|
31
|
+
java.io.FilterOutputStream
|
|
32
|
+
java.io.FilterReader
|
|
33
|
+
java.io.InputStream
|
|
34
|
+
java.io.InputStreamReader
|
|
35
|
+
java.io.IOException
|
|
36
|
+
java.io.LineNumberReader
|
|
37
|
+
java.io.ObjectOutputStream
|
|
38
|
+
java.io.OutputStream
|
|
39
|
+
java.io.PipedOutputStream
|
|
40
|
+
java.io.PipedReader
|
|
41
|
+
java.io.PrintStream
|
|
42
|
+
java.io.PushbackInputStream
|
|
43
|
+
java.io.Reader
|
|
44
|
+
java.io.StringReader
|
|
45
|
+
java.lang.Class
|
|
46
|
+
java.lang.Integer
|
|
47
|
+
java.lang.Number
|
|
48
|
+
java.lang.Object
|
|
49
|
+
java.lang.Process
|
|
50
|
+
java.lang.ProcessBuilder
|
|
51
|
+
java.lang.reflect
|
|
52
|
+
java.lang.Runtime
|
|
53
|
+
java.lang.String
|
|
54
|
+
java.lang.StringBuilder
|
|
55
|
+
java.lang.System
|
|
56
|
+
java.net.Socket
|
|
57
|
+
javassist
|
|
58
|
+
javax.script.ScriptEngineManager
|
|
59
|
+
org.apache.commons
|
|
60
|
+
org.apache.struts
|
|
61
|
+
org.apache.struts2
|
|
62
|
+
org.omg.CORBA
|
|
63
|
+
java.beans.XMLDecode
|
|
64
|
+
sun.reflect
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<jsp:
|
|
2
|
+
javax.servlet
|
|
3
|
+
.addheader
|
|
4
|
+
.createtextfile
|
|
5
|
+
.getfile
|
|
6
|
+
.loadfromfile
|
|
7
|
+
response.binarywrite
|
|
8
|
+
response.write
|
|
9
|
+
scripting.filesystemobject
|
|
10
|
+
server.createobject
|
|
11
|
+
server.execute
|
|
12
|
+
server.htmlencode
|
|
13
|
+
server.mappath
|
|
14
|
+
server.urlencode
|
|
15
|
+
vbscript.encode
|
|
16
|
+
wscript.network
|
|
17
|
+
wscript.shell
|