From 81abf8706d6066233cac58080b60a4abbd3b3cc8 Mon Sep 17 00:00:00 2001 From: perp Date: Tue, 9 Jul 2024 19:35:30 +0100 Subject: [PATCH] Fixed verifying --- README.md | 1 + v1/cmd/blink/main.go | 20 ++++++++++++++++++-- v1/pkg/dns/dns.go | 1 - v1/pkg/dns/lookup.go | 13 +++---------- v1/pkg/dns/verify.go | 2 +- v1/pkg/runner/options.go | 1 - v1/pkg/runner/runner.go | 1 - 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 3875298..d72103d 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ func main() { run := runner.New(opts) fmt.Println(run.Wildcard("disney.com")) + fmt.Println(dns.Verify("shop.disney.com")) run.Start() } ``` diff --git a/v1/cmd/blink/main.go b/v1/cmd/blink/main.go index bbc727c..34f7c18 100644 --- a/v1/cmd/blink/main.go +++ b/v1/cmd/blink/main.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "os" "slices" @@ -28,14 +29,16 @@ const banner = `___ _ _ _ _ _ _ // Runner options var opts runner.Options -// CLI flags var ( + // CLI flags wordlist string resolvers string output string wildcard bool + verify bool verbose bool + // File mutex mu sync.Mutex ) @@ -112,6 +115,15 @@ var rootCmd = &cobra.Command{ return } + // Verify check + if verify { + if !dns.Verify(result.Subdomain) { + log.Err(errors.New(fmt.Sprintf("Could not verify %s", result.Subdomain))). + Msg("") + return + } + } + // Append domain domains[result.Domain] += 1 @@ -172,6 +184,10 @@ var rootCmd = &cobra.Command{ log.Warn().Msg("IPv4 is enabled") } + if verify { + log.Warn().Msg("Verify is enabled") + } + // Wildcard enabled if wildcard { log.Warn().Msg("Wildcard is enabled") @@ -210,7 +226,7 @@ func init() { rootCmd.Flags().BoolVarP(&opts.IPv6, "ipv6", "i", false, "Query for IPv6") rootCmd.Flags().BoolVarP(&wildcard, "wildcard", "d", false, "Query for wildcard") rootCmd.Flags().IntVarP(&opts.Timeout, "timeout", "t", 5, "Query timeout") - rootCmd.Flags().BoolVarP(&opts.Verify, "verify", "y", false, "Verify query") + rootCmd.Flags().BoolVarP(&verify, "verify", "y", false, "Verify query") rootCmd.Flags().IntVarP(&opts.Threads, "threads", "c", 1, "Concurrent threads") rootCmd.Flags().BoolVarP(&verbose, "verbose", "v", false, "Verbose logging") diff --git a/v1/pkg/dns/dns.go b/v1/pkg/dns/dns.go index 39b4509..316af38 100644 --- a/v1/pkg/dns/dns.go +++ b/v1/pkg/dns/dns.go @@ -11,7 +11,6 @@ import ( type Query struct { Client *dns.Client // DNS client IPv6 bool // IPv6 mode - Verify bool // Verify mode Resolvers []string // Target resolvers Domain string // Target domain Subdomain string // Target subdomain diff --git a/v1/pkg/dns/lookup.go b/v1/pkg/dns/lookup.go index fce462c..c69091d 100644 --- a/v1/pkg/dns/lookup.go +++ b/v1/pkg/dns/lookup.go @@ -45,15 +45,6 @@ func (q *Query) Lookup() { return } - // Verify check - if q.Verify { - if Verify(q.Subdomain) { - result.Error = errors.New(fmt.Sprintf("Could not verify %s", q.Subdomain)) - q.Results <- result - return - } - } - // Store IPs var ips []string @@ -82,7 +73,9 @@ func (q *Query) Lookup() { // No IPs found if len(ips) < 1 { - result.Error = errors.New(fmt.Sprintf("No IPs found for %s", q.Domain)) + result.Error = errors.New( + fmt.Sprintf("No IPs found for %s (%s)", q.Domain, q.Subdomain), + ) q.Results <- result return } diff --git a/v1/pkg/dns/verify.go b/v1/pkg/dns/verify.go index fe97d4d..18058b1 100644 --- a/v1/pkg/dns/verify.go +++ b/v1/pkg/dns/verify.go @@ -6,7 +6,7 @@ import ( // Verify subdomain func Verify(subdomain string) bool { - _, err := http.Get(subdomain) + _, err := http.Get("http://" + subdomain) if err != nil { return false } diff --git a/v1/pkg/runner/options.go b/v1/pkg/runner/options.go index bab1f6c..4ebb552 100644 --- a/v1/pkg/runner/options.go +++ b/v1/pkg/runner/options.go @@ -12,7 +12,6 @@ type Options struct { UDP bool // Query using UDP IPv6 bool // Query for IPv6 Timeout int // Query timeout - Verify bool // Verify query Threads int // Concurrent threads OnResult OnResultFunc // Result handler diff --git a/v1/pkg/runner/runner.go b/v1/pkg/runner/runner.go index d9d6624..a77c26d 100644 --- a/v1/pkg/runner/runner.go +++ b/v1/pkg/runner/runner.go @@ -64,7 +64,6 @@ func (r *Runner) Submit() { query := &dns.Query{ Client: r.client, IPv6: r.options.IPv6, - Verify: r.options.Verify, Resolvers: r.options.Resolvers, Domain: domain, Subdomain: word + "." + domain,