mirror of https://github.com/daffainfo/nuclei.git
Added default fields for DNS requests
parent
1851e37aef
commit
831114bdbd
|
@ -83,7 +83,7 @@ type Request struct {
|
|||
|
||||
// description: |
|
||||
// Recursion determines if resolver should recurse all records to get fresh results.
|
||||
Recursion bool `yaml:"recursion,omitempty" jsonschema:"title=recurse all servers,description=Recursion determines if resolver should recurse all records to get fresh results"`
|
||||
Recursion *bool `yaml:"recursion,omitempty" jsonschema:"title=recurse all servers,description=Recursion determines if resolver should recurse all records to get fresh results"`
|
||||
// Resolvers to use for the dns requests
|
||||
Resolvers []string `yaml:"resolvers,omitempty" jsonschema:"title=Resolvers,description=Define resolvers to use within the template"`
|
||||
}
|
||||
|
@ -99,6 +99,12 @@ func (request *Request) GetID() string {
|
|||
|
||||
// Compile compiles the protocol request for further execution.
|
||||
func (request *Request) Compile(options *protocols.ExecuterOptions) error {
|
||||
if request.Retries == 0 {
|
||||
request.Retries = 3
|
||||
}
|
||||
if request.Recursion == nil {
|
||||
*request.Recursion = true
|
||||
}
|
||||
dnsClientOptions := &dnsclientpool.Configuration{
|
||||
Retries: request.Retries,
|
||||
}
|
||||
|
@ -162,7 +168,7 @@ func (request *Request) Make(domain string) (*dns.Msg, error) {
|
|||
// Build a request on the specified URL
|
||||
req := new(dns.Msg)
|
||||
req.Id = dns.Id()
|
||||
req.RecursionDesired = request.Recursion
|
||||
req.RecursionDesired = *request.Recursion
|
||||
|
||||
var q dns.Question
|
||||
|
||||
|
@ -207,6 +213,8 @@ func questionTypeToInt(questionType string) uint16 {
|
|||
question = dns.TypeDS
|
||||
case "AAAA":
|
||||
question = dns.TypeAAAA
|
||||
default:
|
||||
question = dns.TypeA
|
||||
}
|
||||
return question
|
||||
}
|
||||
|
@ -229,6 +237,8 @@ func classToInt(class string) uint16 {
|
|||
result = dns.ClassNONE
|
||||
case "ANY":
|
||||
result = dns.ClassANY
|
||||
default:
|
||||
result = dns.ClassINET
|
||||
}
|
||||
return uint16(result)
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ func TestGenerateDNSVariables(t *testing.T) {
|
|||
func TestDNSCompileMake(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
const templateID = "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -31,7 +32,7 @@ func TestDNSCompileMake(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
}
|
||||
executerOpts := testutils.NewMockExecuterOptions(options, &testutils.TemplateInfo{
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
func TestResponseToDSLMap(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
templateID := "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -27,7 +28,7 @@ func TestResponseToDSLMap(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
}
|
||||
executerOpts := testutils.NewMockExecuterOptions(options, &testutils.TemplateInfo{
|
||||
|
@ -52,6 +53,7 @@ func TestResponseToDSLMap(t *testing.T) {
|
|||
func TestDNSOperatorMatch(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
templateID := "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -59,7 +61,7 @@ func TestDNSOperatorMatch(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
}
|
||||
executerOpts := testutils.NewMockExecuterOptions(options, &testutils.TemplateInfo{
|
||||
|
@ -163,6 +165,7 @@ func TestDNSOperatorMatch(t *testing.T) {
|
|||
func TestDNSOperatorExtract(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
templateID := "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -170,7 +173,7 @@ func TestDNSOperatorExtract(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
}
|
||||
executerOpts := testutils.NewMockExecuterOptions(options, &testutils.TemplateInfo{
|
||||
|
@ -220,6 +223,7 @@ func TestDNSOperatorExtract(t *testing.T) {
|
|||
func TestDNSMakeResult(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
templateID := "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -227,7 +231,7 @@ func TestDNSMakeResult(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
Operators: operators.Operators{
|
||||
Matchers: []*matchers.Matcher{{
|
||||
|
|
|
@ -17,6 +17,7 @@ import (
|
|||
func TestDNSExecuteWithResults(t *testing.T) {
|
||||
options := testutils.DefaultOptions
|
||||
|
||||
recursion := false
|
||||
testutils.Init(options)
|
||||
templateID := "testing-dns"
|
||||
request := &Request{
|
||||
|
@ -24,7 +25,7 @@ func TestDNSExecuteWithResults(t *testing.T) {
|
|||
Class: "INET",
|
||||
Retries: 5,
|
||||
ID: templateID,
|
||||
Recursion: false,
|
||||
Recursion: &recursion,
|
||||
Name: "{{FQDN}}",
|
||||
Operators: operators.Operators{
|
||||
Matchers: []*matchers.Matcher{{
|
||||
|
|
Loading…
Reference in New Issue