From e6cca11bc9332d88ee769196e29dd0bff290c465 Mon Sep 17 00:00:00 2001 From: LuitelSamikshya Date: Thu, 12 May 2022 12:11:12 -0500 Subject: [PATCH 1/3] added idna dependency --- fastdialer/dialer.go | 10 ++++++++-- go.mod | 3 +-- go.sum | 6 ++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/fastdialer/dialer.go b/fastdialer/dialer.go index 7365846..c31efed 100644 --- a/fastdialer/dialer.go +++ b/fastdialer/dialer.go @@ -15,6 +15,7 @@ import ( "github.com/projectdiscovery/networkpolicy" retryabledns "github.com/projectdiscovery/retryabledns" ztls "github.com/zmap/zcrypto/tls" + "golang.org/x/net/idna" ) // Dialer structure containing data information @@ -349,9 +350,14 @@ func (d *Dialer) GetDNSData(hostname string) (*retryabledns.DNSData, error) { ) data, err = d.GetDNSDataFromCache(hostname) if err != nil { - data, err = d.dnsclient.Resolve(hostname) + s, err := idna.New().ToASCII(hostname) + if err != nil { + return nil, fmt.Errorf("failed to convert hostname to ASCII: %w", err) + } + + data, err = d.dnsclient.Resolve(s) if err != nil && d.options.EnableFallback { - data, err = d.dnsclient.ResolveWithSyscall(hostname) + data, err = d.dnsclient.ResolveWithSyscall(s) } if err != nil { return nil, err diff --git a/go.mod b/go.mod index 4d05837..fc16745 100644 --- a/go.mod +++ b/go.mod @@ -21,8 +21,7 @@ require ( github.com/ulule/deepcopier v0.0.0-20200430083143-45decc6639b6 github.com/zmap/zcrypto v0.0.0-20211005224000-2d0ffdec8a9b go.etcd.io/bbolt v1.3.6 // indirect - golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 // indirect - golang.org/x/sys v0.0.0-20210915083310-ed5796bab164 // indirect + golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.27.1 // indirect ) diff --git a/go.sum b/go.sum index e754fbc..575634d 100644 --- a/go.sum +++ b/go.sum @@ -151,6 +151,8 @@ golang.org/x/net v0.0.0-20210414194228-064579744ee0/go.mod h1:9tjilg8BloeKEkVJvy golang.org/x/net v0.0.0-20210521195947-fe42d452be8f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk= golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -175,10 +177,14 @@ golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210415045647-66c3f260301c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210915083310-ed5796bab164 h1:7ZDGnxgHAMw7thfC5bEos0RDAccZKxioiWBhfIe+tvw= golang.org/x/sys v0.0.0-20210915083310-ed5796bab164/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= From 5f9302406cdfb5b703c53aae11305efdca1b1442 Mon Sep 17 00:00:00 2001 From: LuitelSamikshya Date: Thu, 12 May 2022 13:01:07 -0500 Subject: [PATCH 2/3] minor changes --- fastdialer/dialer.go | 9 ++++----- fastdialer/error.go | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fastdialer/dialer.go b/fastdialer/dialer.go index c31efed..a90d41d 100644 --- a/fastdialer/dialer.go +++ b/fastdialer/dialer.go @@ -350,14 +350,13 @@ func (d *Dialer) GetDNSData(hostname string) (*retryabledns.DNSData, error) { ) data, err = d.GetDNSDataFromCache(hostname) if err != nil { - s, err := idna.New().ToASCII(hostname) + hostnameAscii, err := idna.New().ToASCII(hostname) if err != nil { - return nil, fmt.Errorf("failed to convert hostname to ASCII: %w", err) + return nil, AsciiConversionError } - - data, err = d.dnsclient.Resolve(s) + data, err = d.dnsclient.Resolve(hostnameAscii) if err != nil && d.options.EnableFallback { - data, err = d.dnsclient.ResolveWithSyscall(s) + data, err = d.dnsclient.ResolveWithSyscall(hostnameAscii) } if err != nil { return nil, err diff --git a/fastdialer/error.go b/fastdialer/error.go index 5dd0696..8ceb2c9 100644 --- a/fastdialer/error.go +++ b/fastdialer/error.go @@ -13,4 +13,5 @@ var ( NoTLSHistoryError = errors.New("no tls data history available") NoTLSDataError = errors.New("no tls data found for the key") NoDNSDataError = errors.New("no data found") + AsciiConversionError = errors.New("could not convert hostname to ASCII") ) From 4b62dc2f1d0b64da8fb3525a2db0d652b4bf27da Mon Sep 17 00:00:00 2001 From: LuitelSamikshya Date: Fri, 13 May 2022 09:03:49 -0500 Subject: [PATCH 3/3] minor change --- fastdialer/dialer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastdialer/dialer.go b/fastdialer/dialer.go index a90d41d..6559696 100644 --- a/fastdialer/dialer.go +++ b/fastdialer/dialer.go @@ -350,7 +350,7 @@ func (d *Dialer) GetDNSData(hostname string) (*retryabledns.DNSData, error) { ) data, err = d.GetDNSDataFromCache(hostname) if err != nil { - hostnameAscii, err := idna.New().ToASCII(hostname) + hostnameAscii, err := idna.ToASCII(hostname) if err != nil { return nil, AsciiConversionError }