@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,404 @@
1
+ [
2
+ {
3
+ "id": "AUTH-SESSION-080",
4
+ "payload": "PHPSESSID=attacker_controlled_session_id",
5
+ "tags": [
6
+ "session-fixation",
7
+ "cookie-injection",
8
+ "quick",
9
+ "critical"
10
+ ],
11
+ "expected_block": false,
12
+ "severity_hint": "Critical",
13
+ "notes": "Session fixation - attacker sets known session ID before victim login",
14
+ "category": "Auth"
15
+ },
16
+ {
17
+ "id": "AUTH-SESSION-081",
18
+ "payload": "sessionid=00000000-0000-0000-0000-000000000001",
19
+ "tags": [
20
+ "session-prediction",
21
+ "sequential-id",
22
+ "quick",
23
+ "high"
24
+ ],
25
+ "expected_block": false,
26
+ "severity_hint": "High",
27
+ "notes": "Predictable session ID - sequential/incremental session identifier",
28
+ "category": "Auth"
29
+ },
30
+ {
31
+ "id": "AUTH-SESSION-082",
32
+ "payload": "session_token=admin_session_12345",
33
+ "tags": [
34
+ "session-hijacking",
35
+ "weak-token",
36
+ "quick",
37
+ "critical"
38
+ ],
39
+ "expected_block": false,
40
+ "severity_hint": "Critical",
41
+ "notes": "Weak session token - predictable pattern with username",
42
+ "category": "Auth"
43
+ },
44
+ {
45
+ "id": "AUTH-SESSION-083",
46
+ "payload": "JSESSIONID=1111111111111111111111111111",
47
+ "tags": [
48
+ "session-prediction",
49
+ "weak-randomness",
50
+ "high"
51
+ ],
52
+ "expected_block": false,
53
+ "severity_hint": "High",
54
+ "notes": "Session ID with weak entropy - repeated characters indicate poor randomness",
55
+ "category": "Auth"
56
+ },
57
+ {
58
+ "id": "AUTH-SESSION-084",
59
+ "payload": "sid=MTIzNDU2Nzg5MA==",
60
+ "tags": [
61
+ "session-prediction",
62
+ "base64-sequential",
63
+ "high"
64
+ ],
65
+ "expected_block": false,
66
+ "severity_hint": "High",
67
+ "notes": "Base64-encoded sequential session ID - 1234567890 in base64",
68
+ "category": "Auth"
69
+ },
70
+ {
71
+ "id": "AUTH-SESSION-085",
72
+ "payload": "session=user123_20250112_001",
73
+ "tags": [
74
+ "session-prediction",
75
+ "timestamp-based",
76
+ "high"
77
+ ],
78
+ "expected_block": false,
79
+ "severity_hint": "High",
80
+ "notes": "Timestamp-based session ID - predictable pattern with date/time",
81
+ "category": "Auth"
82
+ },
83
+ {
84
+ "id": "AUTH-SESSION-086",
85
+ "payload": "auth_token=; Path=/; Domain=.attacker.com",
86
+ "tags": [
87
+ "cookie-injection",
88
+ "domain-manipulation",
89
+ "critical"
90
+ ],
91
+ "expected_block": true,
92
+ "severity_hint": "Critical",
93
+ "notes": "Session cookie with attacker-controlled domain - session hijacking via subdomain",
94
+ "category": "Auth"
95
+ },
96
+ {
97
+ "id": "AUTH-SESSION-087",
98
+ "payload": "session=valid_session; HttpOnly=false; Secure=false",
99
+ "tags": [
100
+ "cookie-attributes",
101
+ "missing-flags",
102
+ "quick",
103
+ "high"
104
+ ],
105
+ "expected_block": false,
106
+ "severity_hint": "High",
107
+ "notes": "Session cookie without HttpOnly/Secure flags - XSS and network sniffing risk",
108
+ "category": "Auth"
109
+ },
110
+ {
111
+ "id": "AUTH-SESSION-088",
112
+ "payload": "session=valid_session; SameSite=None",
113
+ "tags": [
114
+ "cookie-attributes",
115
+ "samesite-none",
116
+ "high"
117
+ ],
118
+ "expected_block": false,
119
+ "severity_hint": "High",
120
+ "notes": "Session cookie with SameSite=None - CSRF vulnerability",
121
+ "category": "Auth"
122
+ },
123
+ {
124
+ "id": "AUTH-SESSION-089",
125
+ "payload": "session=expired_session_token",
126
+ "tags": [
127
+ "session-timeout",
128
+ "expired-token",
129
+ "quick",
130
+ "medium"
131
+ ],
132
+ "expected_block": false,
133
+ "severity_hint": "Medium",
134
+ "notes": "Expired session token - testing session timeout enforcement",
135
+ "category": "Auth"
136
+ },
137
+ {
138
+ "id": "AUTH-SESSION-090",
139
+ "payload": "session=logged_out_session",
140
+ "tags": [
141
+ "logout-bypass",
142
+ "session-reuse",
143
+ "quick",
144
+ "high"
145
+ ],
146
+ "expected_block": false,
147
+ "severity_hint": "High",
148
+ "notes": "Session reuse after logout - testing session invalidation on logout",
149
+ "category": "Auth"
150
+ },
151
+ {
152
+ "id": "AUTH-SESSION-091",
153
+ "payload": "session=victim_session_id",
154
+ "tags": [
155
+ "session-hijacking",
156
+ "stolen-token",
157
+ "quick",
158
+ "critical"
159
+ ],
160
+ "expected_block": false,
161
+ "severity_hint": "Critical",
162
+ "notes": "Session hijacking with stolen session ID - replay attack",
163
+ "category": "Auth"
164
+ },
165
+ {
166
+ "id": "AUTH-SESSION-092",
167
+ "payload": "session=session_from_different_ip",
168
+ "tags": [
169
+ "session-hijacking",
170
+ "ip-binding",
171
+ "high"
172
+ ],
173
+ "expected_block": false,
174
+ "severity_hint": "High",
175
+ "notes": "Session from different IP address - testing IP binding enforcement",
176
+ "category": "Auth"
177
+ },
178
+ {
179
+ "id": "AUTH-SESSION-093",
180
+ "payload": "session=session_with_changed_user_agent",
181
+ "tags": [
182
+ "session-hijacking",
183
+ "user-agent-mismatch",
184
+ "medium"
185
+ ],
186
+ "expected_block": false,
187
+ "severity_hint": "Medium",
188
+ "notes": "Session with mismatched User-Agent - fingerprint validation bypass",
189
+ "category": "Auth"
190
+ },
191
+ {
192
+ "id": "AUTH-SESSION-094",
193
+ "payload": "csrf_token=",
194
+ "tags": [
195
+ "csrf",
196
+ "empty-token",
197
+ "quick",
198
+ "high"
199
+ ],
200
+ "expected_block": false,
201
+ "severity_hint": "High",
202
+ "notes": "Empty CSRF token - CSRF protection bypass",
203
+ "category": "Auth"
204
+ },
205
+ {
206
+ "id": "AUTH-SESSION-095",
207
+ "payload": "csrf_token=static_token_value",
208
+ "tags": [
209
+ "csrf",
210
+ "static-token",
211
+ "quick",
212
+ "high"
213
+ ],
214
+ "expected_block": false,
215
+ "severity_hint": "High",
216
+ "notes": "Static/predictable CSRF token - not tied to session",
217
+ "category": "Auth"
218
+ },
219
+ {
220
+ "id": "AUTH-SESSION-096",
221
+ "payload": "X-CSRF-Token: null",
222
+ "tags": [
223
+ "csrf",
224
+ "null-token",
225
+ "high"
226
+ ],
227
+ "expected_block": false,
228
+ "severity_hint": "High",
229
+ "notes": "CSRF token with null value - type confusion bypass",
230
+ "category": "Auth"
231
+ },
232
+ {
233
+ "id": "AUTH-SESSION-097",
234
+ "payload": "session=../../../etc/passwd",
235
+ "tags": [
236
+ "session-manipulation",
237
+ "path-traversal",
238
+ "quick",
239
+ "critical"
240
+ ],
241
+ "expected_block": true,
242
+ "severity_hint": "Critical",
243
+ "notes": "Session token with path traversal - file-based session storage attack",
244
+ "category": "Auth"
245
+ },
246
+ {
247
+ "id": "AUTH-SESSION-098",
248
+ "payload": "session=' OR '1'='1",
249
+ "tags": [
250
+ "session-manipulation",
251
+ "sqli",
252
+ "quick",
253
+ "critical"
254
+ ],
255
+ "expected_block": true,
256
+ "severity_hint": "Critical",
257
+ "notes": "SQL injection in session ID - targeting session retrieval query",
258
+ "category": "Auth"
259
+ },
260
+ {
261
+ "id": "AUTH-SESSION-099",
262
+ "payload": "session={\"admin\":true,\"user\":\"attacker\"}",
263
+ "tags": [
264
+ "session-manipulation",
265
+ "json-injection",
266
+ "critical"
267
+ ],
268
+ "expected_block": false,
269
+ "severity_hint": "Critical",
270
+ "notes": "JSON object as session ID - client-side session manipulation",
271
+ "category": "Auth"
272
+ },
273
+ {
274
+ "id": "AUTH-SESSION-100",
275
+ "payload": "session=eyJhZG1pbiI6dHJ1ZSwidXNlciI6ImF0dGFja2VyIn0=",
276
+ "tags": [
277
+ "session-manipulation",
278
+ "base64-json",
279
+ "critical"
280
+ ],
281
+ "expected_block": false,
282
+ "severity_hint": "Critical",
283
+ "notes": "Base64-encoded JSON session - client-side session tampering",
284
+ "category": "Auth"
285
+ },
286
+ {
287
+ "id": "AUTH-SESSION-101",
288
+ "payload": "remember_me=1; session=auto_login_token",
289
+ "tags": [
290
+ "remember-me",
291
+ "persistent-session",
292
+ "high"
293
+ ],
294
+ "expected_block": false,
295
+ "severity_hint": "High",
296
+ "notes": "Remember-me token with weak session - persistent authentication bypass",
297
+ "category": "Auth"
298
+ },
299
+ {
300
+ "id": "AUTH-SESSION-102",
301
+ "payload": "session=; session=valid_session",
302
+ "tags": [
303
+ "cookie-injection",
304
+ "parameter-pollution",
305
+ "high"
306
+ ],
307
+ "expected_block": false,
308
+ "severity_hint": "High",
309
+ "notes": "Duplicate session cookies - HPP (HTTP Parameter Pollution) in cookies",
310
+ "category": "Auth"
311
+ },
312
+ {
313
+ "id": "AUTH-SESSION-103",
314
+ "payload": "session=valid_session%0d%0aSet-Cookie: admin=true",
315
+ "tags": [
316
+ "crlf-injection",
317
+ "cookie-injection",
318
+ "critical"
319
+ ],
320
+ "expected_block": true,
321
+ "severity_hint": "Critical",
322
+ "notes": "CRLF injection in session cookie - HTTP response splitting",
323
+ "category": "Auth"
324
+ },
325
+ {
326
+ "id": "AUTH-SESSION-104",
327
+ "payload": "session=valid_session\\x00admin",
328
+ "tags": [
329
+ "null-byte",
330
+ "session-manipulation",
331
+ "high"
332
+ ],
333
+ "expected_block": true,
334
+ "severity_hint": "High",
335
+ "notes": "Null byte in session token - string truncation attack",
336
+ "category": "Auth"
337
+ },
338
+ {
339
+ "id": "AUTH-SESSION-105",
340
+ "payload": "session=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
341
+ "tags": [
342
+ "dos",
343
+ "long-session-id",
344
+ "medium"
345
+ ],
346
+ "expected_block": false,
347
+ "severity_hint": "Medium",
348
+ "notes": "Extremely long session ID - buffer overflow or DoS attempt",
349
+ "category": "Auth"
350
+ },
351
+ {
352
+ "id": "AUTH-SESSION-106",
353
+ "payload": "session=<script>alert('xss')</script>",
354
+ "tags": [
355
+ "xss",
356
+ "session-reflection",
357
+ "quick",
358
+ "high"
359
+ ],
360
+ "expected_block": true,
361
+ "severity_hint": "High",
362
+ "notes": "XSS in session token - reflected in error messages or logs",
363
+ "category": "Auth"
364
+ },
365
+ {
366
+ "id": "AUTH-SESSION-107",
367
+ "payload": "session=; Max-Age=-1",
368
+ "tags": [
369
+ "cookie-manipulation",
370
+ "negative-maxage",
371
+ "medium"
372
+ ],
373
+ "expected_block": false,
374
+ "severity_hint": "Medium",
375
+ "notes": "Session cookie with negative Max-Age - immediate expiry, DoS potential",
376
+ "category": "Auth"
377
+ },
378
+ {
379
+ "id": "AUTH-SESSION-108",
380
+ "payload": "session_lock=0",
381
+ "tags": [
382
+ "concurrent-sessions",
383
+ "session-lock",
384
+ "medium"
385
+ ],
386
+ "expected_block": false,
387
+ "severity_hint": "Medium",
388
+ "notes": "Disabled session locking - concurrent session abuse",
389
+ "category": "Auth"
390
+ },
391
+ {
392
+ "id": "AUTH-SESSION-109",
393
+ "payload": "session=token1&backup_session=token2",
394
+ "tags": [
395
+ "session-confusion",
396
+ "multiple-sessions",
397
+ "high"
398
+ ],
399
+ "expected_block": false,
400
+ "severity_hint": "High",
401
+ "notes": "Multiple active sessions - session confusion attack",
402
+ "category": "Auth"
403
+ }
404
+ ]