Type templates.Template
File match **/nuclei-templates/**/*.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/nuclei-template-yaml/latest.json
Source https://raw.githubusercontent.com/projectdiscovery/nuclei/master/nuclei-jsonschema.json

Validate with Lintel

npx @lintel/lintel check
Type: templates.Template

Definitions

analyzers.AnalyzerTemplate object
name string required
parameters map%5Bstring%5Dinterface%20%7B%7D required
code.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID is the optional ID of the Request

engine string[]

Engine

sandbox object
2 nested properties
working-dir string

Working directory

image string

Image

pre-condition string

PreCondition is a condition which is evaluated before sending the request

args string[]

Args

pattern string

Pattern

source string

Source snippet

code.Sandbox object
working-dir string

Working directory

image string

Image

dns.DNSRequestTypeHolder string

Type is the type of DNS request to make

dns.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID is the optional ID of the DNS Request

name string

Name is the Hostname to make DNS request for

type string

Type is the type of DNS request to make

Values: "A" "NS" "DS" "CNAME" "SOA" "PTR" "MX" "TXT" "AAAA" "CAA" "TLSA" "ANY" "SRV"
class string

Class is the class of the DNS request

Values: "inet" "csnet" "chaos" "hesiod" "none" "any"
retries integer

Retries is the number of retries for the DNS request

trace boolean

Trace performs a trace operation for the target.

trace-max-recursion integer

TraceMaxRecursion is the number of max recursion allowed for trace operations

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"

Payloads contains any payloads for the current request

threads integer

Threads specifies number of threads to use sending requests. This enables Connection Pooling

recursion boolean

Recursion determines if resolver should recurse all records to get fresh results

resolvers string[]

Define resolvers to use within the template

engine.Action object
action string required

Type of actions to perform

Values: "navigate" "script" "click" "rightclick" "text" "screenshot" "time" "select" "files" "waitdom" "waitfcp" "waitfmp" "waitidle" "waitload" "waitstable" "getresource" "extract" "setmethod" "addheader" "setheader" "deleteheader" "setbody" "waitevent" "waitdialog" "keyboard" "debug" "sleep" "waitvisible"
args

Args contain arguments for the headless action

name string

Name is the name assigned to the headless action

description string

Description of the headless action

engine.ActionTypeHolder string

Type of actions to perform

extractors.Extractor object
type string required

Type of the extractor

Values: "regex" "kval" "xpath" "json" "dsl"
name string

Name of the extractor

regex string[]

Regex to extract from part

group integer

Group to extract from regex

kval string[]

Kval pairs to extract from response

json string[]

JSON JQ expressions to evaluate from response part

xpath string[]

XPath allows using xpath expressions to extract items from html response

attribute string

Optional attribute to extract from response XPath

dsl string[]

Optional attribute to extract from response dsl

part string

Part of the request response to extract data from

internal boolean

Internal when set to true will allow using the value extracted in the next request for some protocols

case-insensitive boolean

use case insensitive extract

extractors.ExtractorTypeHolder string

Type of the extractor

file.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
extensions string[]

List of extensions to perform matching on

denylist string[]

List of files

id string

ID is the optional ID for the request

max-size string

Maximum size of the file to run request on

archive boolean

Process compressed archives without unpacking

mime-type boolean

Filter files by mime-type

no-recursive boolean

Specifies whether to not do recursive checks if folders are provided

fuzz.Rule object
type string

Type of fuzzing rule to perform

Values: "replace" "prefix" "postfix" "infix" "replace-regex"
part string

Part of request rule to fuzz

Values: "query" "header" "path" "body" "cookie" "request"
parts string[]

Part of request rule to fuzz

mode string

Mode of request rule to fuzz

Values: "single" "multiple"
keys string[]

Keys of parameters to fuzz

keys-regex string[]

Regex of parameter keys to fuzz

values string[]

Regex of parameter values to fuzz

Payloads to perform fuzzing substitutions with.

replace-regex string

Regex for regex-replace rule type

fuzz.SliceOrMapSlice string | object[]

Payloads to perform fuzzing substitutions with.

generators.AttackTypeHolder string

Type of the attack

headless.Request object
id string

Optional ID of the headless request

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"

Payloads contains any payloads for the current request

List of actions to run for headless request

user_agent string

userAgent for the headless http request

Values: "off" "default" "custom"
custom_user_agent string

Custom user agent for the headless request

stop-at-first-match boolean

Stop the execution after a match is found

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
fuzzing fuzz.Rule[]

Fuzzing describes rule schema to fuzz headless requests

cookie-reuse boolean

Optional setting that enables cookie reuse

disable-cookie boolean

Optional setting that disables cookie reuse

http.HTTPMethodTypeHolder string

Method is the HTTP Request Method

http.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
path string[]

Path(s) to send http requests to

raw string[]

HTTP Requests in Raw Format

id string

ID for the HTTP Request

name string

Optional name for the HTTP Request

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"
method string

Method is the HTTP Request Method

Values: "GET" "HEAD" "POST" "PUT" "DELETE" "CONNECT" "OPTIONS" "TRACE" "PATCH" "PURGE" "DEBUG"
body string

Body is an optional parameter which contains HTTP Request body

Payloads contains any payloads for the current request

headers

Headers contains HTTP Headers to send with the request

race_count integer

Number of times to send a request in Race Condition Attack

max-redirects integer

Maximum number of redirects that should be followed

pipeline-concurrent-connections integer

Number of connections to create during pipelining

pipeline-requests-per-connection integer

Number of requests to send per connection when pipelining

threads integer

Threads specifies number of threads to use sending requests. This enables Connection Pooling

max-size integer

Maximum size of http response body to read in bytes

fuzzing fuzz.Rule[]

Fuzzing describes rule schema to fuzz http requests

analyzer object
2 nested properties
name string required
parameters map%5Bstring%5Dinterface%20%7B%7D required
self-contained boolean
signature string

Type of the signature

Values: "AWS"
skip-secret-file boolean

Skips the authentication or authorization configured in the secret file

cookie-reuse boolean

Optional setting that enables cookie reuse

disable-cookie boolean

Optional setting that disables cookie reuse

read-all boolean

Enables force reading of entire unsafe http request body

redirects boolean

Specifies whether redirects should be followed by the HTTP Client

host-redirects boolean

Specifies whether redirects to the same host should be followed by the HTTP Client

pipeline boolean

Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining

unsafe boolean

Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests

race boolean

Race determines if all the request have to be attempted at the same time (Race Condition)

req-condition boolean

Automatically assigns numbers to requests and preserves their history

stop-at-first-match boolean

Stop the execution after a match is found

skip-variables-check boolean

Skips the check for unresolved variables in request

iterate-all boolean

Iterates all the values extracted from internal extractors

digest-username string

Optional parameter which specifies the username for digest auth

digest-password string

Optional parameter which specifies the password for digest auth

disable-path-automerge boolean

Disable merging target url path with raw request path

pre-condition matchers.Matcher[]

PreCondition is matcher-like field to check if fuzzing should be performed on this request or not

pre-condition-operator string

Operator to use between multiple per-conditions

Values: "and" "or"
global-matchers boolean

marks matchers as static and applies globally to all result events from other templates

http.SignatureTypeHolder string

Type of the signature

javascript.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID is the optional ID of the Request

init string

Init is the javascript code to execute after compiling template

pre-condition string

PreCondition is a condition which is evaluated before sending the request

code string

Executes inline javascript code for the request

stop-at-first-match boolean

Stop the execution after a match is found

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"
threads integer

Threads specifies number of threads to use sending requests. This enables Connection Pooling

Payloads contains any payloads for the current request

map[string]interface {} object
map[string]string Record<string, string>
matchers.Matcher object
type string required

Type of the matcher

Values: "word" "regex" "binary" "status" "size" "dsl" "xpath"
condition string

Condition between the matcher variables

Values: "and" "or"
part string

Part of response to match data from

negative boolean

Negative specifies if the match should be reversed. It will only match if the condition is not true

name string

Name of the matcher

status integer[]

Status to match for the response

size integer[]

Size is the acceptable size for the response

words string[]

Words contains word patterns required to be present in the response part

regex string[]

Regex contains regex patterns required to be present in the response part

binary string[]

Binary are the binary patterns required to be present in the response part

dsl string[]

DSL are the dsl expressions that will be evaluated as part of nuclei matching rules

xpath string[]

xpath are the XPath queries that will be evaluated against the response part of nuclei matching rules

encoding string

Optional encoding for the word fields

Values: "hex"
case-insensitive boolean

use case insensitive match

match-all boolean

match all matcher values ignoring condition

internal boolean

hide matcher from output

matchers.MatcherTypeHolder string

Type of the matcher

model.Classification object
cve-id string | array
cwe-id string | array
cvss-metrics string

CVSS Metrics for the template

Examples: "3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
cvss-score number

CVSS Score for the template

Examples: 9.8
epss-score number

EPSS Score for the template

Examples: 0.42509
epss-percentile number

EPSS Percentile for the template

Examples: 0.42509
cpe string

CPE for the template

Examples: "cpe:/a:vendor:product:version"
model.Info object
name string required

Name is a short summary of what the template does

Examples: "Nagios Default Credentials Check"
author string | array required
tags string | array
description string

In-depth explanation on what the template does

Examples: "Bower is a package manager which stores package information in the bower.json file"
impact string

In-depth explanation on the impact of the issue found by the template

Examples: "Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries"
reference string | array
severity string

Seriousness of the implications of the template

Values: "info" "low" "medium" "high" "critical" "unknown"
metadata object

Additional metadata fields for the template

classification object
7 nested properties
cve-id string | array
cwe-id string | array
cvss-metrics string

CVSS Metrics for the template

Examples: "3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
cvss-score number

CVSS Score for the template

Examples: 9.8
epss-score number

EPSS Score for the template

Examples: 0.42509
epss-percentile number

EPSS Percentile for the template

Examples: 0.42509
cpe string

CPE for the template

Examples: "cpe:/a:vendor:product:version"
remediation string

In-depth explanation on how to fix the issues found by the template

Examples: "Change the default administrative username and password of Apache ActiveMQ by editing the file jetty-realm.properties"
network.Input object
data string | integer

Data is the data to send as the input

type string

description=Type of input specified in data field

Values: "hex" "text"
read integer

Number of bytes to read from socket

name string

Optional name of the data read to provide matching on

network.NetworkInputTypeHolder string

description=Type of input specified in data field

network.Request object
id string

ID of the network request

host string[]

Host to send network requests to

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"

Payloads contains any payloads for the current request

threads integer

Threads specifies number of threads to use sending requests. This enables Connection Pooling

Inputs contains any input/output for the current request

port string | integer

Port to send network requests to

exclude-ports string

Exclude ports from being scanned

read-size integer

Size of response to read at the end. Default is 1024 bytes

read-all boolean

Read all response stream till the server stops sending

stop-at-first-match boolean

Stop the execution after a match is found

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
severity.Holder string

Seriousness of the implications of the template

ssl.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID of the request

address string

Address contains address for the request

min_version string

Minimum tls version - automatic if not specified.

Values: "sslv3" "tls10" "tls11" "tls12" "tls13"
max_version string

Max tls version - automatic if not specified.

Values: "sslv3" "tls10" "tls11" "tls12" "tls13"
cipher_suites string[]
scan_mode string

Scan Mode - auto if not specified.

Values: "ctls" "ztls" "auto"
tls_version_enum boolean

Enumerate Version - false if not specified

tls_cipher_enum boolean

Enumerate Ciphers - false if not specified

tls_cipher_types string[]

TLS Cipher Types to enumerate

stringslice.StringOrSlice string | array
templates.Template object
id string required

The Unique ID for the template

Examples: "cve-2021-19520"
pattern=^([a-zA-Z0-9]+[-_])*[a-zA-Z0-9]+$
info object required
10 nested properties
name string required

Name is a short summary of what the template does

Examples: "Nagios Default Credentials Check"
author string | array required
tags string | array
description string

In-depth explanation on what the template does

Examples: "Bower is a package manager which stores package information in the bower.json file"
impact string

In-depth explanation on the impact of the issue found by the template

Examples: "Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries"
reference string | array
severity string

Seriousness of the implications of the template

Values: "info" "low" "medium" "high" "critical" "unknown"
metadata object

Additional metadata fields for the template

classification object
7 nested properties
cve-id string | array
cwe-id string | array
cvss-metrics string

CVSS Metrics for the template

Examples: "3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
cvss-score number

CVSS Score for the template

Examples: 9.8
epss-score number

EPSS Score for the template

Examples: 0.42509
epss-percentile number

EPSS Percentile for the template

Examples: 0.42509
cpe string

CPE for the template

Examples: "cpe:/a:vendor:product:version"
remediation string

In-depth explanation on how to fix the issues found by the template

Examples: "Change the default administrative username and password of Apache ActiveMQ by editing the file jetty-realm.properties"
flow string

Flow contains js code which defines how the template should be executed

Examples: "'flow: http(0) && http(1)'"
requests http.Request[]

HTTP requests to make for the template

HTTP requests to make for the template

DNS requests to make for the template

File requests to make for the template

Network requests to make for the template

Network requests to make for the template

Headless requests to make for the template

SSL requests to make for the template

Websocket requests to make for the template

WHOIS requests to make for the template

Code snippets

Javascript requests to make for the template

List of workflows to execute for template

self-contained boolean

Mark Requests for the template as self-contained

stop-at-first-match boolean

Stop at first match for the template

signature string

Type of the signature

Values: "AWS"
variables object

Additional variables for the request

constants object

constants contains any constant for the template

userAgent.UserAgentHolder string

userAgent for the headless http request

variables.Variable object

Additional variables for the request

websocket.Input object
data string

Data is the data to send as the input

name string

Optional name of the data read to provide matching on

websocket.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID of the network request

address string

Address contains address for the request

Inputs contains any input/output for the current request

Headers contains headers for the request

attack string

Type of the attack

Values: "batteringram" "pitchfork" "clusterbomb"

Payloads contains any payloads for the current request

whois.Request object

Detection mechanism to identify whether the request was successful by doing pattern matching

Extractors contains the extraction mechanism for the request to identify and extract parts of the response

matchers-condition string

Conditions between the matchers

Values: "and" "or"
id string

ID of the network request

query string

Query contains query for the request

server string

Server contains the server url to execute the WHOIS request on

workflows.Matcher object
name string | array
condition string

Condition between the names

Values: "and" "or"

Templates to run after match

workflows.WorkflowTemplate object
template string

Template or directory to execute as part of workflow

tags string | array

Matchers perform name based matching to run subtemplates for a workflow

Subtemplates are ran if the template field Template matches