Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/nuclei-jsonschema.json
2050 views
1
{
2
"$schema": "https://json-schema.org/draft/2020-12/schema",
3
"$id": "https://templates.-template",
4
"$ref": "#/$defs/templates.Template",
5
"$defs": {
6
"analyzers.AnalyzerTemplate": {
7
"properties": {
8
"name": {
9
"type": "string"
10
},
11
"parameters": {
12
"$ref": "#/$defs/map[string]interface {}"
13
}
14
},
15
"additionalProperties": false,
16
"type": "object",
17
"required": [
18
"name",
19
"parameters"
20
]
21
},
22
"code.Request": {
23
"properties": {
24
"matchers": {
25
"items": {
26
"$ref": "#/$defs/matchers.Matcher"
27
},
28
"type": "array",
29
"title": "matchers to run on response",
30
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
31
},
32
"extractors": {
33
"items": {
34
"$ref": "#/$defs/extractors.Extractor"
35
},
36
"type": "array",
37
"title": "extractors to run on response",
38
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
39
},
40
"matchers-condition": {
41
"type": "string",
42
"enum": [
43
"and",
44
"or"
45
],
46
"title": "condition between the matchers",
47
"description": "Conditions between the matchers"
48
},
49
"id": {
50
"type": "string",
51
"title": "id of the request",
52
"description": "ID is the optional ID of the Request"
53
},
54
"engine": {
55
"items": {
56
"type": "string"
57
},
58
"type": "array",
59
"title": "engine",
60
"description": "Engine"
61
},
62
"pre-condition": {
63
"type": "string",
64
"title": "pre-condition for the request",
65
"description": "PreCondition is a condition which is evaluated before sending the request"
66
},
67
"args": {
68
"items": {
69
"type": "string"
70
},
71
"type": "array",
72
"title": "args",
73
"description": "Args"
74
},
75
"pattern": {
76
"type": "string",
77
"title": "pattern",
78
"description": "Pattern"
79
},
80
"source": {
81
"type": "string",
82
"title": "source file/snippet",
83
"description": "Source snippet"
84
}
85
},
86
"additionalProperties": false,
87
"type": "object"
88
},
89
"dns.DNSRequestTypeHolder": {
90
"type": "string",
91
"enum": [
92
"A",
93
"NS",
94
"DS",
95
"CNAME",
96
"SOA",
97
"PTR",
98
"MX",
99
"TXT",
100
"AAAA",
101
"CAA",
102
"TLSA",
103
"ANY",
104
"SRV"
105
],
106
"title": "type of DNS request to make",
107
"description": "Type is the type of DNS request to make"
108
},
109
"dns.Request": {
110
"properties": {
111
"matchers": {
112
"items": {
113
"$ref": "#/$defs/matchers.Matcher"
114
},
115
"type": "array",
116
"title": "matchers to run on response",
117
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
118
},
119
"extractors": {
120
"items": {
121
"$ref": "#/$defs/extractors.Extractor"
122
},
123
"type": "array",
124
"title": "extractors to run on response",
125
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
126
},
127
"matchers-condition": {
128
"type": "string",
129
"enum": [
130
"and",
131
"or"
132
],
133
"title": "condition between the matchers",
134
"description": "Conditions between the matchers"
135
},
136
"id": {
137
"type": "string",
138
"title": "id of the dns request",
139
"description": "ID is the optional ID of the DNS Request"
140
},
141
"name": {
142
"type": "string",
143
"title": "hostname to make dns request for",
144
"description": "Name is the Hostname to make DNS request for"
145
},
146
"type": {
147
"$ref": "#/$defs/dns.DNSRequestTypeHolder",
148
"title": "type of dns request to make",
149
"description": "Type is the type of DNS request to make"
150
},
151
"class": {
152
"type": "string",
153
"enum": [
154
"inet",
155
"csnet",
156
"chaos",
157
"hesiod",
158
"none",
159
"any"
160
],
161
"title": "class of DNS request",
162
"description": "Class is the class of the DNS request"
163
},
164
"retries": {
165
"type": "integer",
166
"title": "retries for dns request",
167
"description": "Retries is the number of retries for the DNS request"
168
},
169
"trace": {
170
"type": "boolean",
171
"title": "trace operation",
172
"description": "Trace performs a trace operation for the target."
173
},
174
"trace-max-recursion": {
175
"type": "integer",
176
"title": "trace-max-recursion level for dns request",
177
"description": "TraceMaxRecursion is the number of max recursion allowed for trace operations"
178
},
179
"attack": {
180
"$ref": "#/$defs/generators.AttackTypeHolder",
181
"title": "attack is the payload combination",
182
"description": "Attack is the type of payload combinations to perform"
183
},
184
"payloads": {
185
"$ref": "#/$defs/map[string]interface {}",
186
"title": "payloads for the network request",
187
"description": "Payloads contains any payloads for the current request"
188
},
189
"threads": {
190
"type": "integer",
191
"title": "threads for sending requests",
192
"description": "Threads specifies number of threads to use sending requests. This enables Connection Pooling"
193
},
194
"recursion": {
195
"type": "boolean",
196
"title": "recurse all servers",
197
"description": "Recursion determines if resolver should recurse all records to get fresh results"
198
},
199
"resolvers": {
200
"items": {
201
"type": "string"
202
},
203
"type": "array",
204
"title": "Resolvers",
205
"description": "Define resolvers to use within the template"
206
}
207
},
208
"additionalProperties": false,
209
"type": "object"
210
},
211
"engine.Action": {
212
"properties": {
213
"args": {
214
"patternProperties": {
215
".*": {
216
"oneOf": [
217
{
218
"type": "string"
219
},
220
{
221
"type": "integer"
222
},
223
{
224
"type": "boolean"
225
}
226
]
227
}
228
},
229
"title": "arguments for headless action",
230
"description": "Args contain arguments for the headless action"
231
},
232
"name": {
233
"type": "string",
234
"title": "name for headless action",
235
"description": "Name is the name assigned to the headless action"
236
},
237
"description": {
238
"type": "string",
239
"title": "description for headless action",
240
"description": "Description of the headless action"
241
},
242
"action": {
243
"$ref": "#/$defs/engine.ActionTypeHolder",
244
"title": "action to perform",
245
"description": "Type of actions to perform"
246
}
247
},
248
"additionalProperties": false,
249
"type": "object",
250
"required": [
251
"action"
252
]
253
},
254
"engine.ActionTypeHolder": {
255
"type": "string",
256
"enum": [
257
"navigate",
258
"script",
259
"click",
260
"rightclick",
261
"text",
262
"screenshot",
263
"time",
264
"select",
265
"files",
266
"waitdom",
267
"waitfcp",
268
"waitfmp",
269
"waitidle",
270
"waitload",
271
"waitstable",
272
"getresource",
273
"extract",
274
"setmethod",
275
"addheader",
276
"setheader",
277
"deleteheader",
278
"setbody",
279
"waitevent",
280
"waitdialog",
281
"keyboard",
282
"debug",
283
"sleep",
284
"waitvisible"
285
],
286
"title": "action to perform",
287
"description": "Type of actions to perform"
288
},
289
"extractors.Extractor": {
290
"properties": {
291
"name": {
292
"type": "string",
293
"title": "name of the extractor",
294
"description": "Name of the extractor"
295
},
296
"type": {
297
"$ref": "#/$defs/extractors.ExtractorTypeHolder"
298
},
299
"regex": {
300
"items": {
301
"type": "string"
302
},
303
"type": "array",
304
"title": "regex to extract from part",
305
"description": "Regex to extract from part"
306
},
307
"group": {
308
"type": "integer",
309
"title": "group to extract from regex",
310
"description": "Group to extract from regex"
311
},
312
"kval": {
313
"items": {
314
"type": "string"
315
},
316
"type": "array",
317
"title": "kval pairs to extract from response",
318
"description": "Kval pairs to extract from response"
319
},
320
"json": {
321
"items": {
322
"type": "string"
323
},
324
"type": "array",
325
"title": "json jq expressions to extract data",
326
"description": "JSON JQ expressions to evaluate from response part"
327
},
328
"xpath": {
329
"items": {
330
"type": "string"
331
},
332
"type": "array",
333
"title": "html xpath expressions to extract data",
334
"description": "XPath allows using xpath expressions to extract items from html response"
335
},
336
"attribute": {
337
"type": "string",
338
"title": "optional attribute to extract from xpath",
339
"description": "Optional attribute to extract from response XPath"
340
},
341
"dsl": {
342
"items": {
343
"type": "string"
344
},
345
"type": "array",
346
"title": "dsl expressions to extract",
347
"description": "Optional attribute to extract from response dsl"
348
},
349
"part": {
350
"type": "string",
351
"title": "part of response to extract data from",
352
"description": "Part of the request response to extract data from"
353
},
354
"internal": {
355
"type": "boolean",
356
"title": "mark extracted value for internal variable use",
357
"description": "Internal when set to true will allow using the value extracted in the next request for some protocols"
358
},
359
"case-insensitive": {
360
"type": "boolean",
361
"title": "use case insensitive extract",
362
"description": "use case insensitive extract"
363
}
364
},
365
"additionalProperties": false,
366
"type": "object",
367
"required": [
368
"type"
369
]
370
},
371
"extractors.ExtractorTypeHolder": {
372
"type": "string",
373
"enum": [
374
"regex",
375
"kval",
376
"xpath",
377
"json",
378
"dsl"
379
],
380
"title": "type of the extractor",
381
"description": "Type of the extractor"
382
},
383
"file.Request": {
384
"properties": {
385
"matchers": {
386
"items": {
387
"$ref": "#/$defs/matchers.Matcher"
388
},
389
"type": "array",
390
"title": "matchers to run on response",
391
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
392
},
393
"extractors": {
394
"items": {
395
"$ref": "#/$defs/extractors.Extractor"
396
},
397
"type": "array",
398
"title": "extractors to run on response",
399
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
400
},
401
"matchers-condition": {
402
"type": "string",
403
"enum": [
404
"and",
405
"or"
406
],
407
"title": "condition between the matchers",
408
"description": "Conditions between the matchers"
409
},
410
"extensions": {
411
"items": {
412
"type": "string"
413
},
414
"type": "array",
415
"title": "extensions to match",
416
"description": "List of extensions to perform matching on"
417
},
418
"denylist": {
419
"items": {
420
"type": "string"
421
},
422
"type": "array",
423
"title": "denylist",
424
"description": "List of files"
425
},
426
"id": {
427
"type": "string",
428
"title": "id of the request",
429
"description": "ID is the optional ID for the request"
430
},
431
"max-size": {
432
"type": "string",
433
"title": "max size data to run request on",
434
"description": "Maximum size of the file to run request on"
435
},
436
"archive": {
437
"type": "boolean",
438
"title": "enable archives",
439
"description": "Process compressed archives without unpacking"
440
},
441
"mime-type": {
442
"type": "boolean",
443
"title": "enable filtering by mime-type",
444
"description": "Filter files by mime-type"
445
},
446
"no-recursive": {
447
"type": "boolean",
448
"title": "do not perform recursion",
449
"description": "Specifies whether to not do recursive checks if folders are provided"
450
}
451
},
452
"additionalProperties": false,
453
"type": "object"
454
},
455
"fuzz.Rule": {
456
"properties": {
457
"type": {
458
"type": "string",
459
"enum": [
460
"replace",
461
"prefix",
462
"postfix",
463
"infix",
464
"replace-regex"
465
],
466
"title": "type of rule",
467
"description": "Type of fuzzing rule to perform"
468
},
469
"part": {
470
"type": "string",
471
"enum": [
472
"query",
473
"header",
474
"path",
475
"body",
476
"cookie",
477
"request"
478
],
479
"title": "part of rule",
480
"description": "Part of request rule to fuzz"
481
},
482
"parts": {
483
"items": {
484
"type": "string",
485
"enum": [
486
"query",
487
"header",
488
"path",
489
"body",
490
"cookie",
491
"request"
492
]
493
},
494
"type": "array",
495
"title": "parts of rule",
496
"description": "Part of request rule to fuzz"
497
},
498
"mode": {
499
"type": "string",
500
"enum": [
501
"single",
502
"multiple"
503
],
504
"title": "mode of rule",
505
"description": "Mode of request rule to fuzz"
506
},
507
"keys": {
508
"items": {
509
"type": "string"
510
},
511
"type": "array",
512
"title": "keys of parameters to fuzz",
513
"description": "Keys of parameters to fuzz"
514
},
515
"keys-regex": {
516
"items": {
517
"type": "string"
518
},
519
"type": "array",
520
"title": "keys regex to fuzz",
521
"description": "Regex of parameter keys to fuzz"
522
},
523
"values": {
524
"items": {
525
"type": "string"
526
},
527
"type": "array",
528
"title": "values regex to fuzz",
529
"description": "Regex of parameter values to fuzz"
530
},
531
"fuzz": {
532
"$ref": "#/$defs/fuzz.SliceOrMapSlice",
533
"title": "payloads of fuzz rule",
534
"description": "Payloads to perform fuzzing substitutions with"
535
},
536
"replace-regex": {
537
"type": "string",
538
"title": "replace regex of rule",
539
"description": "Regex for regex-replace rule type"
540
}
541
},
542
"additionalProperties": false,
543
"type": "object"
544
},
545
"fuzz.SliceOrMapSlice": {
546
"items": {
547
"oneOf": [
548
{
549
"type": "string"
550
},
551
{
552
"type": "object"
553
}
554
]
555
},
556
"type": "array",
557
"title": "Payloads of Fuzz Rule",
558
"description": "Payloads to perform fuzzing substitutions with."
559
},
560
"generators.AttackTypeHolder": {
561
"type": "string",
562
"enum": [
563
"batteringram",
564
"pitchfork",
565
"clusterbomb"
566
],
567
"title": "type of the attack",
568
"description": "Type of the attack"
569
},
570
"headless.Request": {
571
"properties": {
572
"id": {
573
"type": "string",
574
"title": "id of the request",
575
"description": "Optional ID of the headless request"
576
},
577
"attack": {
578
"$ref": "#/$defs/generators.AttackTypeHolder",
579
"title": "attack is the payload combination",
580
"description": "Attack is the type of payload combinations to perform"
581
},
582
"payloads": {
583
"$ref": "#/$defs/map[string]interface {}",
584
"title": "payloads for the headless request",
585
"description": "Payloads contains any payloads for the current request"
586
},
587
"steps": {
588
"items": {
589
"$ref": "#/$defs/engine.Action"
590
},
591
"type": "array",
592
"title": "list of actions for headless request",
593
"description": "List of actions to run for headless request"
594
},
595
"user_agent": {
596
"$ref": "#/$defs/userAgent.UserAgentHolder",
597
"title": "user agent for the headless request",
598
"description": "User agent for the headless request"
599
},
600
"custom_user_agent": {
601
"type": "string",
602
"title": "custom user agent for the headless request",
603
"description": "Custom user agent for the headless request"
604
},
605
"stop-at-first-match": {
606
"type": "boolean",
607
"title": "stop at first match",
608
"description": "Stop the execution after a match is found"
609
},
610
"matchers": {
611
"items": {
612
"$ref": "#/$defs/matchers.Matcher"
613
},
614
"type": "array",
615
"title": "matchers to run on response",
616
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
617
},
618
"extractors": {
619
"items": {
620
"$ref": "#/$defs/extractors.Extractor"
621
},
622
"type": "array",
623
"title": "extractors to run on response",
624
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
625
},
626
"matchers-condition": {
627
"type": "string",
628
"enum": [
629
"and",
630
"or"
631
],
632
"title": "condition between the matchers",
633
"description": "Conditions between the matchers"
634
},
635
"fuzzing": {
636
"items": {
637
"$ref": "#/$defs/fuzz.Rule"
638
},
639
"type": "array",
640
"title": "fuzzin rules for http fuzzing",
641
"description": "Fuzzing describes rule schema to fuzz headless requests"
642
},
643
"cookie-reuse": {
644
"type": "boolean",
645
"title": "optional cookie reuse enable",
646
"description": "Optional setting that enables cookie reuse"
647
},
648
"disable-cookie": {
649
"type": "boolean",
650
"title": "optional disable cookie reuse",
651
"description": "Optional setting that disables cookie reuse"
652
}
653
},
654
"additionalProperties": false,
655
"type": "object"
656
},
657
"http.HTTPMethodTypeHolder": {
658
"type": "string",
659
"enum": [
660
"GET",
661
"HEAD",
662
"POST",
663
"PUT",
664
"DELETE",
665
"CONNECT",
666
"OPTIONS",
667
"TRACE",
668
"PATCH",
669
"PURGE",
670
"DEBUG"
671
],
672
"title": "method is the HTTP request method",
673
"description": "Method is the HTTP Request Method"
674
},
675
"http.Request": {
676
"properties": {
677
"matchers": {
678
"items": {
679
"$ref": "#/$defs/matchers.Matcher"
680
},
681
"type": "array",
682
"title": "matchers to run on response",
683
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
684
},
685
"extractors": {
686
"items": {
687
"$ref": "#/$defs/extractors.Extractor"
688
},
689
"type": "array",
690
"title": "extractors to run on response",
691
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
692
},
693
"matchers-condition": {
694
"type": "string",
695
"enum": [
696
"and",
697
"or"
698
],
699
"title": "condition between the matchers",
700
"description": "Conditions between the matchers"
701
},
702
"path": {
703
"items": {
704
"type": "string"
705
},
706
"type": "array",
707
"title": "path(s) for the http request",
708
"description": "Path(s) to send http requests to"
709
},
710
"raw": {
711
"items": {
712
"type": "string"
713
},
714
"type": "array",
715
"description": "HTTP Requests in Raw Format"
716
},
717
"id": {
718
"type": "string",
719
"title": "id for the http request",
720
"description": "ID for the HTTP Request"
721
},
722
"name": {
723
"type": "string",
724
"title": "name for the http request",
725
"description": "Optional name for the HTTP Request"
726
},
727
"attack": {
728
"$ref": "#/$defs/generators.AttackTypeHolder",
729
"title": "attack is the payload combination",
730
"description": "Attack is the type of payload combinations to perform"
731
},
732
"method": {
733
"$ref": "#/$defs/http.HTTPMethodTypeHolder",
734
"title": "method is the http request method",
735
"description": "Method is the HTTP Request Method"
736
},
737
"body": {
738
"type": "string",
739
"title": "body is the http request body",
740
"description": "Body is an optional parameter which contains HTTP Request body"
741
},
742
"payloads": {
743
"$ref": "#/$defs/map[string]interface {}",
744
"title": "payloads for the http request",
745
"description": "Payloads contains any payloads for the current request"
746
},
747
"headers": {
748
"patternProperties": {
749
".*": {
750
"oneOf": [
751
{
752
"type": "string"
753
},
754
{
755
"type": "integer"
756
},
757
{
758
"type": "boolean"
759
}
760
]
761
}
762
},
763
"title": "headers to send with the http request",
764
"description": "Headers contains HTTP Headers to send with the request"
765
},
766
"race_count": {
767
"type": "integer",
768
"title": "number of times to repeat request in race condition",
769
"description": "Number of times to send a request in Race Condition Attack"
770
},
771
"max-redirects": {
772
"type": "integer",
773
"title": "maximum number of redirects to follow",
774
"description": "Maximum number of redirects that should be followed"
775
},
776
"pipeline-concurrent-connections": {
777
"type": "integer",
778
"title": "number of pipelining connections",
779
"description": "Number of connections to create during pipelining"
780
},
781
"pipeline-requests-per-connection": {
782
"type": "integer",
783
"title": "number of requests to send per pipelining connections",
784
"description": "Number of requests to send per connection when pipelining"
785
},
786
"threads": {
787
"type": "integer",
788
"title": "threads for sending requests",
789
"description": "Threads specifies number of threads to use sending requests. This enables Connection Pooling"
790
},
791
"max-size": {
792
"type": "integer",
793
"title": "maximum http response body size",
794
"description": "Maximum size of http response body to read in bytes"
795
},
796
"fuzzing": {
797
"items": {
798
"$ref": "#/$defs/fuzz.Rule"
799
},
800
"type": "array",
801
"title": "fuzzin rules for http fuzzing",
802
"description": "Fuzzing describes rule schema to fuzz http requests"
803
},
804
"analyzer": {
805
"$ref": "#/$defs/analyzers.AnalyzerTemplate",
806
"title": "analyzer for http request",
807
"description": "Analyzer for HTTP Request"
808
},
809
"self-contained": {
810
"type": "boolean"
811
},
812
"signature": {
813
"$ref": "#/$defs/http.SignatureTypeHolder",
814
"title": "signature is the http request signature method",
815
"description": "Signature is the HTTP Request signature Method"
816
},
817
"skip-secret-file": {
818
"type": "boolean",
819
"title": "bypass secret file",
820
"description": "Skips the authentication or authorization configured in the secret file"
821
},
822
"cookie-reuse": {
823
"type": "boolean",
824
"title": "optional cookie reuse enable",
825
"description": "Optional setting that enables cookie reuse"
826
},
827
"disable-cookie": {
828
"type": "boolean",
829
"title": "optional disable cookie reuse",
830
"description": "Optional setting that disables cookie reuse"
831
},
832
"read-all": {
833
"type": "boolean",
834
"title": "force read all body",
835
"description": "Enables force reading of entire unsafe http request body"
836
},
837
"redirects": {
838
"type": "boolean",
839
"title": "follow http redirects",
840
"description": "Specifies whether redirects should be followed by the HTTP Client"
841
},
842
"host-redirects": {
843
"type": "boolean",
844
"title": "follow same host http redirects",
845
"description": "Specifies whether redirects to the same host should be followed by the HTTP Client"
846
},
847
"pipeline": {
848
"type": "boolean",
849
"title": "perform HTTP 1.1 pipelining",
850
"description": "Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining"
851
},
852
"unsafe": {
853
"type": "boolean",
854
"title": "use rawhttp non-strict-rfc client",
855
"description": "Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests"
856
},
857
"race": {
858
"type": "boolean",
859
"title": "perform race-http request coordination attack",
860
"description": "Race determines if all the request have to be attempted at the same time (Race Condition)"
861
},
862
"req-condition": {
863
"type": "boolean",
864
"title": "preserve request history",
865
"description": "Automatically assigns numbers to requests and preserves their history"
866
},
867
"stop-at-first-match": {
868
"type": "boolean",
869
"title": "stop at first match",
870
"description": "Stop the execution after a match is found"
871
},
872
"skip-variables-check": {
873
"type": "boolean",
874
"title": "skip variable checks",
875
"description": "Skips the check for unresolved variables in request"
876
},
877
"iterate-all": {
878
"type": "boolean",
879
"title": "iterate all the values",
880
"description": "Iterates all the values extracted from internal extractors"
881
},
882
"digest-username": {
883
"type": "string",
884
"title": "specifies the username for digest authentication",
885
"description": "Optional parameter which specifies the username for digest auth"
886
},
887
"digest-password": {
888
"type": "string",
889
"title": "specifies the password for digest authentication",
890
"description": "Optional parameter which specifies the password for digest auth"
891
},
892
"disable-path-automerge": {
893
"type": "boolean",
894
"title": "disable auto merging of path",
895
"description": "Disable merging target url path with raw request path"
896
},
897
"pre-condition": {
898
"items": {
899
"$ref": "#/$defs/matchers.Matcher"
900
},
901
"type": "array",
902
"title": "pre-condition for fuzzing/dast",
903
"description": "PreCondition is matcher-like field to check if fuzzing should be performed on this request or not"
904
},
905
"pre-condition-operator": {
906
"type": "string",
907
"enum": [
908
"and",
909
"or"
910
],
911
"title": "condition between the filters",
912
"description": "Operator to use between multiple per-conditions"
913
},
914
"global-matchers": {
915
"type": "boolean",
916
"title": "global matchers",
917
"description": "marks matchers as static and applies globally to all result events from other templates"
918
}
919
},
920
"additionalProperties": false,
921
"type": "object"
922
},
923
"http.SignatureTypeHolder": {
924
"type": "string",
925
"enum": [
926
"AWS"
927
],
928
"title": "type of the signature",
929
"description": "Type of the signature"
930
},
931
"javascript.Request": {
932
"properties": {
933
"matchers": {
934
"items": {
935
"$ref": "#/$defs/matchers.Matcher"
936
},
937
"type": "array",
938
"title": "matchers to run on response",
939
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
940
},
941
"extractors": {
942
"items": {
943
"$ref": "#/$defs/extractors.Extractor"
944
},
945
"type": "array",
946
"title": "extractors to run on response",
947
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
948
},
949
"matchers-condition": {
950
"type": "string",
951
"enum": [
952
"and",
953
"or"
954
],
955
"title": "condition between the matchers",
956
"description": "Conditions between the matchers"
957
},
958
"id": {
959
"type": "string",
960
"title": "id of the request",
961
"description": "ID is the optional ID of the Request"
962
},
963
"init": {
964
"type": "string",
965
"title": "init javascript code",
966
"description": "Init is the javascript code to execute after compiling template"
967
},
968
"pre-condition": {
969
"type": "string",
970
"title": "pre-condition for the request",
971
"description": "PreCondition is a condition which is evaluated before sending the request"
972
},
973
"args": {
974
"$ref": "#/$defs/map[string]interface {}"
975
},
976
"code": {
977
"type": "string",
978
"title": "code to execute in javascript",
979
"description": "Executes inline javascript code for the request"
980
},
981
"stop-at-first-match": {
982
"type": "boolean",
983
"title": "stop at first match",
984
"description": "Stop the execution after a match is found"
985
},
986
"attack": {
987
"$ref": "#/$defs/generators.AttackTypeHolder",
988
"title": "attack is the payload combination",
989
"description": "Attack is the type of payload combinations to perform"
990
},
991
"threads": {
992
"type": "integer",
993
"title": "threads for sending requests",
994
"description": "Threads specifies number of threads to use sending requests. This enables Connection Pooling"
995
},
996
"payloads": {
997
"$ref": "#/$defs/map[string]interface {}",
998
"title": "payloads for the webosocket request",
999
"description": "Payloads contains any payloads for the current request"
1000
}
1001
},
1002
"additionalProperties": false,
1003
"type": "object"
1004
},
1005
"map[string]interface {}": {
1006
"type": "object"
1007
},
1008
"map[string]string": {
1009
"additionalProperties": {
1010
"type": "string"
1011
},
1012
"type": "object"
1013
},
1014
"matchers.Matcher": {
1015
"properties": {
1016
"type": {
1017
"$ref": "#/$defs/matchers.MatcherTypeHolder",
1018
"title": "type of matcher",
1019
"description": "Type of the matcher"
1020
},
1021
"condition": {
1022
"type": "string",
1023
"enum": [
1024
"and",
1025
"or"
1026
],
1027
"title": "condition between matcher variables",
1028
"description": "Condition between the matcher variables"
1029
},
1030
"part": {
1031
"type": "string",
1032
"title": "part of response to match",
1033
"description": "Part of response to match data from"
1034
},
1035
"negative": {
1036
"type": "boolean",
1037
"title": "negative specifies if match reversed",
1038
"description": "Negative specifies if the match should be reversed. It will only match if the condition is not true"
1039
},
1040
"name": {
1041
"type": "string",
1042
"title": "name of the matcher",
1043
"description": "Name of the matcher"
1044
},
1045
"status": {
1046
"items": {
1047
"type": "integer"
1048
},
1049
"type": "array",
1050
"title": "status to match",
1051
"description": "Status to match for the response"
1052
},
1053
"size": {
1054
"items": {
1055
"type": "integer"
1056
},
1057
"type": "array",
1058
"title": "acceptable size for response",
1059
"description": "Size is the acceptable size for the response"
1060
},
1061
"words": {
1062
"items": {
1063
"type": "string"
1064
},
1065
"type": "array",
1066
"title": "words to match in response",
1067
"description": " Words contains word patterns required to be present in the response part"
1068
},
1069
"regex": {
1070
"items": {
1071
"type": "string"
1072
},
1073
"type": "array",
1074
"title": "regex to match in response",
1075
"description": "Regex contains regex patterns required to be present in the response part"
1076
},
1077
"binary": {
1078
"items": {
1079
"type": "string"
1080
},
1081
"type": "array",
1082
"title": "binary patterns to match in response",
1083
"description": "Binary are the binary patterns required to be present in the response part"
1084
},
1085
"dsl": {
1086
"items": {
1087
"type": "string"
1088
},
1089
"type": "array",
1090
"title": "dsl expressions to match in response",
1091
"description": "DSL are the dsl expressions that will be evaluated as part of nuclei matching rules"
1092
},
1093
"xpath": {
1094
"items": {
1095
"type": "string"
1096
},
1097
"type": "array",
1098
"title": "xpath queries to match in response",
1099
"description": "xpath are the XPath queries that will be evaluated against the response part of nuclei matching rules"
1100
},
1101
"encoding": {
1102
"type": "string",
1103
"enum": [
1104
"hex"
1105
],
1106
"title": "encoding for word field",
1107
"description": "Optional encoding for the word fields"
1108
},
1109
"case-insensitive": {
1110
"type": "boolean",
1111
"title": "use case insensitive match",
1112
"description": "use case insensitive match"
1113
},
1114
"match-all": {
1115
"type": "boolean",
1116
"title": "match all values",
1117
"description": "match all matcher values ignoring condition"
1118
},
1119
"internal": {
1120
"type": "boolean",
1121
"title": "hide matcher from output",
1122
"description": "hide matcher from output"
1123
}
1124
},
1125
"additionalProperties": false,
1126
"type": "object",
1127
"required": [
1128
"type"
1129
]
1130
},
1131
"matchers.MatcherTypeHolder": {
1132
"type": "string",
1133
"enum": [
1134
"word",
1135
"regex",
1136
"binary",
1137
"status",
1138
"size",
1139
"dsl",
1140
"xpath"
1141
],
1142
"title": "type of the matcher",
1143
"description": "Type of the matcher"
1144
},
1145
"model.Classification": {
1146
"properties": {
1147
"cve-id": {
1148
"$ref": "#/$defs/stringslice.StringOrSlice",
1149
"title": "cve ids for the template",
1150
"description": "CVE IDs for the template"
1151
},
1152
"cwe-id": {
1153
"$ref": "#/$defs/stringslice.StringOrSlice",
1154
"title": "cwe ids for the template",
1155
"description": "CWE IDs for the template"
1156
},
1157
"cvss-metrics": {
1158
"type": "string",
1159
"title": "cvss metrics for the template",
1160
"description": "CVSS Metrics for the template",
1161
"examples": [
1162
"3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
1163
]
1164
},
1165
"cvss-score": {
1166
"type": "number",
1167
"title": "cvss score for the template",
1168
"description": "CVSS Score for the template",
1169
"examples": [
1170
9.8
1171
]
1172
},
1173
"epss-score": {
1174
"type": "number",
1175
"title": "epss score for the template",
1176
"description": "EPSS Score for the template",
1177
"examples": [
1178
0.42509
1179
]
1180
},
1181
"epss-percentile": {
1182
"type": "number",
1183
"title": "epss percentile for the template",
1184
"description": "EPSS Percentile for the template",
1185
"examples": [
1186
0.42509
1187
]
1188
},
1189
"cpe": {
1190
"type": "string",
1191
"title": "cpe for the template",
1192
"description": "CPE for the template",
1193
"examples": [
1194
"cpe:/a:vendor:product:version"
1195
]
1196
}
1197
},
1198
"additionalProperties": false,
1199
"type": "object"
1200
},
1201
"model.Info": {
1202
"properties": {
1203
"name": {
1204
"type": "string",
1205
"title": "name of the template",
1206
"description": "Name is a short summary of what the template does",
1207
"examples": [
1208
"Nagios Default Credentials Check"
1209
]
1210
},
1211
"author": {
1212
"$ref": "#/$defs/stringslice.StringOrSlice",
1213
"oneOf": [
1214
{
1215
"type": "string",
1216
"examples": [
1217
"pdteam"
1218
]
1219
},
1220
{
1221
"type": "array",
1222
"examples": [
1223
"pdteam,mr.robot"
1224
]
1225
}
1226
],
1227
"title": "author of the template",
1228
"description": "Author is the author of the template"
1229
},
1230
"tags": {
1231
"$ref": "#/$defs/stringslice.StringOrSlice",
1232
"title": "tags of the template",
1233
"description": "Any tags for the template"
1234
},
1235
"description": {
1236
"type": "string",
1237
"title": "description of the template",
1238
"description": "In-depth explanation on what the template does",
1239
"examples": [
1240
"Bower is a package manager which stores package information in the bower.json file"
1241
]
1242
},
1243
"impact": {
1244
"type": "string",
1245
"title": "impact of the template",
1246
"description": "In-depth explanation on the impact of the issue found by the template",
1247
"examples": [
1248
"Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries"
1249
]
1250
},
1251
"reference": {
1252
"$ref": "#/$defs/stringslice.StringOrSlice",
1253
"title": "references for the template",
1254
"description": "Links relevant to the template"
1255
},
1256
"severity": {
1257
"$ref": "#/$defs/severity.Holder"
1258
},
1259
"metadata": {
1260
"$ref": "#/$defs/map[string]interface {}",
1261
"type": "object",
1262
"title": "additional metadata for the template",
1263
"description": "Additional metadata fields for the template"
1264
},
1265
"classification": {
1266
"$ref": "#/$defs/model.Classification",
1267
"type": "object",
1268
"title": "classification info for the template",
1269
"description": "Classification information for the template"
1270
},
1271
"remediation": {
1272
"type": "string",
1273
"title": "remediation steps for the template",
1274
"description": "In-depth explanation on how to fix the issues found by the template",
1275
"examples": [
1276
"Change the default administrative username and password of Apache ActiveMQ by editing the file jetty-realm.properties"
1277
]
1278
}
1279
},
1280
"additionalProperties": false,
1281
"type": "object",
1282
"required": [
1283
"name",
1284
"author"
1285
]
1286
},
1287
"network.Input": {
1288
"properties": {
1289
"data": {
1290
"oneOf": [
1291
{
1292
"type": "string"
1293
},
1294
{
1295
"type": "integer"
1296
}
1297
],
1298
"title": "data to send as input",
1299
"description": "Data is the data to send as the input"
1300
},
1301
"type": {
1302
"$ref": "#/$defs/network.NetworkInputTypeHolder",
1303
"title": "type is the type of input data",
1304
"description": "Type of input specified in data field"
1305
},
1306
"read": {
1307
"type": "integer",
1308
"title": "bytes to read from socket",
1309
"description": "Number of bytes to read from socket"
1310
},
1311
"name": {
1312
"type": "string",
1313
"title": "optional name for data read",
1314
"description": "Optional name of the data read to provide matching on"
1315
}
1316
},
1317
"additionalProperties": false,
1318
"type": "object"
1319
},
1320
"network.NetworkInputTypeHolder": {
1321
"type": "string",
1322
"enum": [
1323
"hex",
1324
"text"
1325
],
1326
"title": "type is the type of input data",
1327
"description": "description=Type of input specified in data field"
1328
},
1329
"network.Request": {
1330
"properties": {
1331
"id": {
1332
"type": "string",
1333
"title": "id of the request",
1334
"description": "ID of the network request"
1335
},
1336
"host": {
1337
"items": {
1338
"type": "string"
1339
},
1340
"type": "array",
1341
"title": "host to send requests to",
1342
"description": "Host to send network requests to"
1343
},
1344
"attack": {
1345
"$ref": "#/$defs/generators.AttackTypeHolder",
1346
"title": "attack is the payload combination",
1347
"description": "Attack is the type of payload combinations to perform"
1348
},
1349
"payloads": {
1350
"$ref": "#/$defs/map[string]interface {}",
1351
"title": "payloads for the network request",
1352
"description": "Payloads contains any payloads for the current request"
1353
},
1354
"threads": {
1355
"type": "integer",
1356
"title": "threads for sending requests",
1357
"description": "Threads specifies number of threads to use sending requests. This enables Connection Pooling"
1358
},
1359
"inputs": {
1360
"items": {
1361
"$ref": "#/$defs/network.Input"
1362
},
1363
"type": "array",
1364
"title": "inputs for the network request",
1365
"description": "Inputs contains any input/output for the current request"
1366
},
1367
"port": {
1368
"oneOf": [
1369
{
1370
"type": "string"
1371
},
1372
{
1373
"type": "integer"
1374
}
1375
],
1376
"title": "port to send requests to",
1377
"description": "Port to send network requests to"
1378
},
1379
"exclude-ports": {
1380
"type": "string",
1381
"title": "exclude ports from being scanned",
1382
"description": "Exclude ports from being scanned"
1383
},
1384
"read-size": {
1385
"type": "integer",
1386
"title": "size of network response to read",
1387
"description": "Size of response to read at the end. Default is 1024 bytes"
1388
},
1389
"read-all": {
1390
"type": "boolean",
1391
"title": "read all response stream",
1392
"description": "Read all response stream till the server stops sending"
1393
},
1394
"stop-at-first-match": {
1395
"type": "boolean",
1396
"title": "stop at first match",
1397
"description": "Stop the execution after a match is found"
1398
},
1399
"matchers": {
1400
"items": {
1401
"$ref": "#/$defs/matchers.Matcher"
1402
},
1403
"type": "array",
1404
"title": "matchers to run on response",
1405
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
1406
},
1407
"extractors": {
1408
"items": {
1409
"$ref": "#/$defs/extractors.Extractor"
1410
},
1411
"type": "array",
1412
"title": "extractors to run on response",
1413
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
1414
},
1415
"matchers-condition": {
1416
"type": "string",
1417
"enum": [
1418
"and",
1419
"or"
1420
],
1421
"title": "condition between the matchers",
1422
"description": "Conditions between the matchers"
1423
}
1424
},
1425
"additionalProperties": false,
1426
"type": "object"
1427
},
1428
"severity.Holder": {
1429
"type": "string",
1430
"enum": [
1431
"info",
1432
"low",
1433
"medium",
1434
"high",
1435
"critical",
1436
"unknown"
1437
],
1438
"title": "severity of the template",
1439
"description": "Seriousness of the implications of the template"
1440
},
1441
"ssl.Request": {
1442
"properties": {
1443
"matchers": {
1444
"items": {
1445
"$ref": "#/$defs/matchers.Matcher"
1446
},
1447
"type": "array",
1448
"title": "matchers to run on response",
1449
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
1450
},
1451
"extractors": {
1452
"items": {
1453
"$ref": "#/$defs/extractors.Extractor"
1454
},
1455
"type": "array",
1456
"title": "extractors to run on response",
1457
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
1458
},
1459
"matchers-condition": {
1460
"type": "string",
1461
"enum": [
1462
"and",
1463
"or"
1464
],
1465
"title": "condition between the matchers",
1466
"description": "Conditions between the matchers"
1467
},
1468
"id": {
1469
"type": "string",
1470
"title": "id of the request",
1471
"description": "ID of the request"
1472
},
1473
"address": {
1474
"type": "string",
1475
"title": "address for the ssl request",
1476
"description": "Address contains address for the request"
1477
},
1478
"min_version": {
1479
"type": "string",
1480
"enum": [
1481
"sslv3",
1482
"tls10",
1483
"tls11",
1484
"tls12",
1485
"tls13"
1486
],
1487
"title": "Min. TLS version",
1488
"description": "Minimum tls version - automatic if not specified."
1489
},
1490
"max_version": {
1491
"type": "string",
1492
"enum": [
1493
"sslv3",
1494
"tls10",
1495
"tls11",
1496
"tls12",
1497
"tls13"
1498
],
1499
"title": "Max. TLS version",
1500
"description": "Max tls version - automatic if not specified."
1501
},
1502
"cipher_suites": {
1503
"items": {
1504
"type": "string"
1505
},
1506
"type": "array"
1507
},
1508
"scan_mode": {
1509
"type": "string",
1510
"enum": [
1511
"ctls",
1512
"ztls",
1513
"auto"
1514
],
1515
"title": "Scan Mode",
1516
"description": "Scan Mode - auto if not specified."
1517
},
1518
"tls_version_enum": {
1519
"type": "boolean",
1520
"title": "Enumerate Versions",
1521
"description": "Enumerate Version - false if not specified"
1522
},
1523
"tls_cipher_enum": {
1524
"type": "boolean",
1525
"title": "Enumerate Ciphers",
1526
"description": "Enumerate Ciphers - false if not specified"
1527
},
1528
"tls_cipher_types": {
1529
"items": {
1530
"type": "string",
1531
"enum": [
1532
"weak",
1533
"secure",
1534
"insecure",
1535
"all"
1536
]
1537
},
1538
"type": "array",
1539
"title": "TLS Cipher Types",
1540
"description": "TLS Cipher Types to enumerate"
1541
}
1542
},
1543
"additionalProperties": false,
1544
"type": "object"
1545
},
1546
"stringslice.StringOrSlice": {
1547
"oneOf": [
1548
{
1549
"type": "string"
1550
},
1551
{
1552
"type": "array"
1553
}
1554
]
1555
},
1556
"templates.Template": {
1557
"properties": {
1558
"id": {
1559
"type": "string",
1560
"pattern": "^([a-zA-Z0-9]+[-_])*[a-zA-Z0-9]+$",
1561
"title": "id of the template",
1562
"description": "The Unique ID for the template",
1563
"examples": [
1564
"cve-2021-19520"
1565
]
1566
},
1567
"info": {
1568
"$ref": "#/$defs/model.Info",
1569
"type": "object",
1570
"title": "info for the template",
1571
"description": "Info contains metadata for the template"
1572
},
1573
"flow": {
1574
"type": "string",
1575
"title": "template execution flow in js",
1576
"description": "Flow contains js code which defines how the template should be executed",
1577
"examples": [
1578
"'flow: http(0) \u0026\u0026 http(1)'"
1579
]
1580
},
1581
"requests": {
1582
"items": {
1583
"$ref": "#/$defs/http.Request"
1584
},
1585
"type": "array",
1586
"title": "http requests to make",
1587
"description": "HTTP requests to make for the template"
1588
},
1589
"http": {
1590
"items": {
1591
"$ref": "#/$defs/http.Request"
1592
},
1593
"type": "array",
1594
"title": "http requests to make",
1595
"description": "HTTP requests to make for the template"
1596
},
1597
"dns": {
1598
"items": {
1599
"$ref": "#/$defs/dns.Request"
1600
},
1601
"type": "array",
1602
"title": "dns requests to make",
1603
"description": "DNS requests to make for the template"
1604
},
1605
"file": {
1606
"items": {
1607
"$ref": "#/$defs/file.Request"
1608
},
1609
"type": "array",
1610
"title": "file requests to make",
1611
"description": "File requests to make for the template"
1612
},
1613
"network": {
1614
"items": {
1615
"$ref": "#/$defs/network.Request"
1616
},
1617
"type": "array",
1618
"title": "network requests to make",
1619
"description": "Network requests to make for the template"
1620
},
1621
"tcp": {
1622
"items": {
1623
"$ref": "#/$defs/network.Request"
1624
},
1625
"type": "array",
1626
"title": "network(tcp) requests to make",
1627
"description": "Network requests to make for the template"
1628
},
1629
"headless": {
1630
"items": {
1631
"$ref": "#/$defs/headless.Request"
1632
},
1633
"type": "array",
1634
"title": "headless requests to make",
1635
"description": "Headless requests to make for the template"
1636
},
1637
"ssl": {
1638
"items": {
1639
"$ref": "#/$defs/ssl.Request"
1640
},
1641
"type": "array",
1642
"title": "ssl requests to make",
1643
"description": "SSL requests to make for the template"
1644
},
1645
"websocket": {
1646
"items": {
1647
"$ref": "#/$defs/websocket.Request"
1648
},
1649
"type": "array",
1650
"title": "websocket requests to make",
1651
"description": "Websocket requests to make for the template"
1652
},
1653
"whois": {
1654
"items": {
1655
"$ref": "#/$defs/whois.Request"
1656
},
1657
"type": "array",
1658
"title": "whois requests to make",
1659
"description": "WHOIS requests to make for the template"
1660
},
1661
"code": {
1662
"items": {
1663
"$ref": "#/$defs/code.Request"
1664
},
1665
"type": "array",
1666
"title": "code snippets to make",
1667
"description": "Code snippets"
1668
},
1669
"javascript": {
1670
"items": {
1671
"$ref": "#/$defs/javascript.Request"
1672
},
1673
"type": "array",
1674
"title": "javascript requests to make",
1675
"description": "Javascript requests to make for the template"
1676
},
1677
"workflows": {
1678
"items": {
1679
"$ref": "#/$defs/workflows.WorkflowTemplate"
1680
},
1681
"type": "array",
1682
"title": "list of workflows to execute",
1683
"description": "List of workflows to execute for template"
1684
},
1685
"self-contained": {
1686
"type": "boolean",
1687
"title": "mark requests as self-contained",
1688
"description": "Mark Requests for the template as self-contained"
1689
},
1690
"stop-at-first-match": {
1691
"type": "boolean",
1692
"title": "stop at first match",
1693
"description": "Stop at first match for the template"
1694
},
1695
"signature": {
1696
"$ref": "#/$defs/http.SignatureTypeHolder",
1697
"title": "signature is the http request signature method",
1698
"description": "Signature is the HTTP Request signature Method"
1699
},
1700
"variables": {
1701
"$ref": "#/$defs/variables.Variable",
1702
"type": "object",
1703
"title": "variables for the http request",
1704
"description": "Variables contains any variables for the current request"
1705
},
1706
"constants": {
1707
"$ref": "#/$defs/map[string]interface {}",
1708
"type": "object",
1709
"title": "constant for the template",
1710
"description": "constants contains any constant for the template"
1711
}
1712
},
1713
"additionalProperties": false,
1714
"type": "object",
1715
"required": [
1716
"id",
1717
"info"
1718
]
1719
},
1720
"userAgent.UserAgentHolder": {
1721
"type": "string",
1722
"enum": [
1723
"off",
1724
"default",
1725
"custom"
1726
],
1727
"title": "userAgent for the headless",
1728
"description": "userAgent for the headless http request"
1729
},
1730
"variables.Variable": {
1731
"additionalProperties": true,
1732
"type": "object",
1733
"title": "variables for the request",
1734
"description": "Additional variables for the request"
1735
},
1736
"websocket.Input": {
1737
"properties": {
1738
"data": {
1739
"type": "string",
1740
"title": "data to send as input",
1741
"description": "Data is the data to send as the input"
1742
},
1743
"name": {
1744
"type": "string",
1745
"title": "optional name for data read",
1746
"description": "Optional name of the data read to provide matching on"
1747
}
1748
},
1749
"additionalProperties": false,
1750
"type": "object"
1751
},
1752
"websocket.Request": {
1753
"properties": {
1754
"matchers": {
1755
"items": {
1756
"$ref": "#/$defs/matchers.Matcher"
1757
},
1758
"type": "array",
1759
"title": "matchers to run on response",
1760
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
1761
},
1762
"extractors": {
1763
"items": {
1764
"$ref": "#/$defs/extractors.Extractor"
1765
},
1766
"type": "array",
1767
"title": "extractors to run on response",
1768
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
1769
},
1770
"matchers-condition": {
1771
"type": "string",
1772
"enum": [
1773
"and",
1774
"or"
1775
],
1776
"title": "condition between the matchers",
1777
"description": "Conditions between the matchers"
1778
},
1779
"id": {
1780
"type": "string",
1781
"title": "id of the request",
1782
"description": "ID of the network request"
1783
},
1784
"address": {
1785
"type": "string",
1786
"title": "address for the websocket request",
1787
"description": "Address contains address for the request"
1788
},
1789
"inputs": {
1790
"items": {
1791
"$ref": "#/$defs/websocket.Input"
1792
},
1793
"type": "array",
1794
"title": "inputs for the websocket request",
1795
"description": "Inputs contains any input/output for the current request"
1796
},
1797
"headers": {
1798
"$ref": "#/$defs/map[string]string",
1799
"title": "headers contains the request headers",
1800
"description": "Headers contains headers for the request"
1801
},
1802
"attack": {
1803
"$ref": "#/$defs/generators.AttackTypeHolder",
1804
"title": "attack is the payload combination",
1805
"description": "Attack is the type of payload combinations to perform"
1806
},
1807
"payloads": {
1808
"$ref": "#/$defs/map[string]interface {}",
1809
"title": "payloads for the websocket request",
1810
"description": "Payloads contains any payloads for the current request"
1811
}
1812
},
1813
"additionalProperties": false,
1814
"type": "object"
1815
},
1816
"whois.Request": {
1817
"properties": {
1818
"matchers": {
1819
"items": {
1820
"$ref": "#/$defs/matchers.Matcher"
1821
},
1822
"type": "array",
1823
"title": "matchers to run on response",
1824
"description": "Detection mechanism to identify whether the request was successful by doing pattern matching"
1825
},
1826
"extractors": {
1827
"items": {
1828
"$ref": "#/$defs/extractors.Extractor"
1829
},
1830
"type": "array",
1831
"title": "extractors to run on response",
1832
"description": "Extractors contains the extraction mechanism for the request to identify and extract parts of the response"
1833
},
1834
"matchers-condition": {
1835
"type": "string",
1836
"enum": [
1837
"and",
1838
"or"
1839
],
1840
"title": "condition between the matchers",
1841
"description": "Conditions between the matchers"
1842
},
1843
"id": {
1844
"type": "string",
1845
"title": "id of the request",
1846
"description": "ID of the network request"
1847
},
1848
"query": {
1849
"type": "string",
1850
"title": "query for the WHOIS request",
1851
"description": "Query contains query for the request"
1852
},
1853
"server": {
1854
"type": "string",
1855
"title": "server url to execute the WHOIS request on",
1856
"description": "Server contains the server url to execute the WHOIS request on"
1857
}
1858
},
1859
"additionalProperties": false,
1860
"type": "object"
1861
},
1862
"workflows.Matcher": {
1863
"properties": {
1864
"name": {
1865
"$ref": "#/$defs/stringslice.StringOrSlice",
1866
"title": "name of items to match",
1867
"description": "Name of items to match"
1868
},
1869
"condition": {
1870
"type": "string",
1871
"enum": [
1872
"and",
1873
"or"
1874
],
1875
"title": "condition between names",
1876
"description": "Condition between the names"
1877
},
1878
"subtemplates": {
1879
"items": {
1880
"$ref": "#/$defs/workflows.WorkflowTemplate"
1881
},
1882
"type": "array",
1883
"title": "templates to run after match",
1884
"description": "Templates to run after match"
1885
}
1886
},
1887
"additionalProperties": false,
1888
"type": "object"
1889
},
1890
"workflows.WorkflowTemplate": {
1891
"properties": {
1892
"template": {
1893
"type": "string",
1894
"title": "template/directory to execute",
1895
"description": "Template or directory to execute as part of workflow"
1896
},
1897
"tags": {
1898
"$ref": "#/$defs/stringslice.StringOrSlice",
1899
"title": "tags to execute",
1900
"description": "Tags to run template based on"
1901
},
1902
"matchers": {
1903
"items": {
1904
"$ref": "#/$defs/workflows.Matcher"
1905
},
1906
"type": "array",
1907
"title": "name based template result matchers",
1908
"description": "Matchers perform name based matching to run subtemplates for a workflow"
1909
},
1910
"subtemplates": {
1911
"items": {
1912
"$ref": "#/$defs/workflows.WorkflowTemplate"
1913
},
1914
"type": "array",
1915
"title": "subtemplate based result matchers",
1916
"description": "Subtemplates are ran if the template field Template matches"
1917
}
1918
},
1919
"additionalProperties": false,
1920
"type": "object"
1921
}
1922
}
1923
}
1924
1925