From 52f77a77742f0f4d40e209e6912e7eeecb617541 Mon Sep 17 00:00:00 2001 From: Dogan Can Bakir <65292895+dogancanbakir@users.noreply.github.com> Date: Fri, 10 Jan 2025 12:55:01 +0300 Subject: [PATCH] remove subdomaincenter (#1500) --- v2/pkg/passive/sources.go | 2 - v2/pkg/passive/sources_test.go | 2 - v2/pkg/passive/sources_wo_auth_test.go | 1 - v2/pkg/runner/options.go | 1 - .../subdomaincenter/subdomaincenter.go | 87 ------------------- 5 files changed, 93 deletions(-) delete mode 100644 v2/pkg/subscraping/sources/subdomaincenter/subdomaincenter.go diff --git a/v2/pkg/passive/sources.go b/v2/pkg/passive/sources.go index 319295ad1..374c5fdd7 100644 --- a/v2/pkg/passive/sources.go +++ b/v2/pkg/passive/sources.go @@ -41,7 +41,6 @@ import ( "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/securitytrails" "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/shodan" "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/sitedossier" - "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/subdomaincenter" "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/threatbook" "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/virustotal" "github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/waybackarchive" @@ -93,7 +92,6 @@ var AllSources = [...]subscraping.Source{ // &threatminer.Source{}, // failing api // &reconcloud.Source{}, // failing due to cloudflare bot protection &builtwith.Source{}, - &subdomaincenter.Source{}, } var sourceWarnings = mapsutil.NewSyncLockMap[string, string]( diff --git a/v2/pkg/passive/sources_test.go b/v2/pkg/passive/sources_test.go index 551a60740..19aa41579 100644 --- a/v2/pkg/passive/sources_test.go +++ b/v2/pkg/passive/sources_test.go @@ -53,7 +53,6 @@ var ( // "threatminer", // "reconcloud", "builtwith", - "subdomaincenter", } expectedDefaultSources = []string{ @@ -89,7 +88,6 @@ var ( // "threatminer", // "reconcloud", "builtwith", - // "subdomaincenter", //failing with empty result } expectedDefaultRecursiveSources = []string{ diff --git a/v2/pkg/passive/sources_wo_auth_test.go b/v2/pkg/passive/sources_wo_auth_test.go index b8ffc3de2..d5aef6530 100644 --- a/v2/pkg/passive/sources_wo_auth_test.go +++ b/v2/pkg/passive/sources_wo_auth_test.go @@ -32,7 +32,6 @@ func TestSourcesWithoutKeys(t *testing.T) { "alienvault", // 503 Service Temporarily Unavailable "digitorus", // failing with "Failed to retrieve certificate" "dnsdumpster", // failing with "unexpected status code 403 received" - "subdomaincenter", //failing with empty result or random reason /shrug } domain := "hackerone.com" diff --git a/v2/pkg/runner/options.go b/v2/pkg/runner/options.go index 32562cf17..6cad1a3e8 100644 --- a/v2/pkg/runner/options.go +++ b/v2/pkg/runner/options.go @@ -257,5 +257,4 @@ var defaultRateLimits = []string{ "netlas=1/s", // "gitlab=2/s", "github=83/m", - "subdomaincenter=2/m", } diff --git a/v2/pkg/subscraping/sources/subdomaincenter/subdomaincenter.go b/v2/pkg/subscraping/sources/subdomaincenter/subdomaincenter.go deleted file mode 100644 index ea928f7ee..000000000 --- a/v2/pkg/subscraping/sources/subdomaincenter/subdomaincenter.go +++ /dev/null @@ -1,87 +0,0 @@ -// Package subdomaincenter logic -package subdomaincenter - -import ( - "context" - "fmt" - "time" - - jsoniter "github.com/json-iterator/go" - - "github.com/projectdiscovery/subfinder/v2/pkg/subscraping" -) - -// Source is the passive scraping agent -type Source struct { - timeTaken time.Duration - errors int - results int -} - -// Run function returns all subdomains found with the service -func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Session) <-chan subscraping.Result { - results := make(chan subscraping.Result) - s.errors = 0 - s.results = 0 - - go func() { - defer func(startTime time.Time) { - s.timeTaken = time.Since(startTime) - close(results) - }(time.Now()) - - resp, err := session.SimpleGet(ctx, fmt.Sprintf("https://api.subdomain.center/?domain=%s", domain)) - if err != nil { - results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err} - s.errors++ - session.DiscardHTTPResponse(resp) - return - } - - var subdomains []string - err = jsoniter.NewDecoder(resp.Body).Decode(&subdomains) - if err != nil { - results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err} - s.errors++ - resp.Body.Close() - return - } - resp.Body.Close() - - for _, subdomain := range subdomains { - results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: subdomain} - s.results++ - } - }() - - return results -} - -// Name returns the name of the source -func (s *Source) Name() string { - return "subdomaincenter" -} - -func (s *Source) IsDefault() bool { - return false -} - -func (s *Source) HasRecursiveSupport() bool { - return false -} - -func (s *Source) NeedsKey() bool { - return false -} - -func (s *Source) AddApiKeys(_ []string) { - // no key needed -} - -func (s *Source) Statistics() subscraping.Statistics { - return subscraping.Statistics{ - Errors: s.errors, - Results: s.results, - TimeTaken: s.timeTaken, - } -}