Skip to content

Commit 933918a

Browse files
Merge pull request #1689 from projectdiscovery/dev
v2.11.0
2 parents bfdb4a8 + 2e0982c commit 933918a

57 files changed

Lines changed: 1138 additions & 175 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pkg/passive/passive.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,15 @@ func (a *Agent) EnumerateSubdomainsWithCtx(ctx context.Context, domain string, p
6565
for _, runner := range a.sources {
6666
wg.Add(1)
6767
go func(source subscraping.Source) {
68+
defer wg.Done()
6869
ctxWithValue := context.WithValue(ctx, subscraping.CtxSourceArg, source.Name())
6970
for resp := range source.Run(ctxWithValue, domain, session) {
70-
results <- resp
71+
select {
72+
case <-ctx.Done():
73+
return
74+
case results <- resp:
75+
}
7176
}
72-
wg.Done()
7377
}(runner)
7478
}
7579
wg.Wait()

pkg/passive/sources.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import (
2525
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/digitorus"
2626
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/dnsdb"
2727
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/dnsdumpster"
28-
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/domainsproject"
2928
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/dnsrepo"
29+
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/domainsproject"
3030
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/driftnet"
3131
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/facebook"
3232
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/fofa"
@@ -36,8 +36,10 @@ import (
3636
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/hudsonrock"
3737
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/intelx"
3838
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/leakix"
39+
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/merklemap"
3940
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/netlas"
4041
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/onyphe"
42+
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/profundis"
4143
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/pugrecon"
4244
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/quake"
4345
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/rapiddns"
@@ -47,6 +49,7 @@ import (
4749
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/securitytrails"
4850
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/shodan"
4951
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/sitedossier"
52+
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/thc"
5053
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/threatbook"
5154
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/threatcrowd"
5255
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/virustotal"
@@ -81,6 +84,7 @@ var AllSources = [...]subscraping.Source{
8184
&hackertarget.Source{},
8285
&intelx.Source{},
8386
&netlas.Source{},
87+
&merklemap.Source{},
8488
&onyphe.Source{},
8589
&leakix.Source{},
8690
&quake.Source{},
@@ -91,6 +95,7 @@ var AllSources = [...]subscraping.Source{
9195
&robtex.Source{},
9296
&rsecloud.Source{},
9397
&securitytrails.Source{},
98+
&profundis.Source{},
9499
&shodan.Source{},
95100
&sitedossier.Source{},
96101
&threatbook.Source{},
@@ -106,6 +111,7 @@ var AllSources = [...]subscraping.Source{
106111
&builtwith.Source{},
107112
&hudsonrock.Source{},
108113
&digitalyama.Source{},
114+
&thc.Source{},
109115
}
110116

111117
var sourceWarnings = mapsutil.NewSyncLockMap[string, string](

pkg/passive/sources_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var (
4343
"robtex",
4444
"rsecloud",
4545
"securitytrails",
46+
"profundis",
4647
"shodan",
4748
"sitedossier",
4849
"threatbook",
@@ -59,6 +60,8 @@ var (
5960
"builtwith",
6061
"hudsonrock",
6162
"digitalyama",
63+
"merklemap",
64+
"thc",
6265
}
6366

6467
expectedDefaultSources = []string{
@@ -88,6 +91,7 @@ var (
8891
// "riddler", // failing due to cloudfront protection
8992
"rsecloud",
9093
"securitytrails",
94+
"profundis",
9195
"shodan",
9296
"windvane",
9397
"virustotal",
@@ -98,6 +102,7 @@ var (
98102
// "reconcloud",
99103
"builtwith",
100104
"digitalyama",
105+
"thc",
101106
}
102107

103108
expectedDefaultRecursiveSources = []string{
@@ -113,6 +118,7 @@ var (
113118
"virustotal",
114119
"leakix",
115120
"facebook",
121+
"merklemap",
116122
// "reconcloud",
117123
}
118124
)

pkg/runner/banners.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const banner = `
1717
const ToolName = `subfinder`
1818

1919
// Version is the current version of subfinder
20-
const version = `v2.10.1`
20+
const version = `v2.11.0`
2121

2222
// showBanner is used to show the banner to the user
2323
func showBanner() {

pkg/subscraping/sources/alienvault/alienvault.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,12 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
7373
}
7474

7575
for _, record := range response.PassiveDNS {
76-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: record.Hostname}
77-
s.results++
76+
select {
77+
case <-ctx.Done():
78+
return
79+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: record.Hostname}:
80+
s.results++
81+
}
7882
}
7983
}()
8084

pkg/subscraping/sources/anubis/anubis.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,12 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
5656
session.DiscardHTTPResponse(resp)
5757

5858
for _, record := range subdomains {
59-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: record}
60-
s.results++
59+
select {
60+
case <-ctx.Done():
61+
return
62+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: record}:
63+
s.results++
64+
}
6165
}
6266

6367
}()

pkg/subscraping/sources/bevigil/bevigil.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,12 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
7070
}
7171

7272
for _, subdomain := range subdomains {
73-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: subdomain}
74-
s.results++
73+
select {
74+
case <-ctx.Done():
75+
return
76+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: subdomain}:
77+
s.results++
78+
}
7579
}
7680

7781
}()

pkg/subscraping/sources/bufferover/bufferover.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,12 @@ func (s *Source) getData(ctx context.Context, sourceURL string, apiKey string, s
9696

9797
for _, subdomain := range subdomains {
9898
for _, value := range session.Extractor.Extract(subdomain) {
99-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: value}
100-
s.results++
99+
select {
100+
case <-ctx.Done():
101+
return
102+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: value}:
103+
s.results++
104+
}
101105
}
102106
}
103107
}

pkg/subscraping/sources/builtwith/builtwith.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,12 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
7474
session.DiscardHTTPResponse(resp)
7575
for _, result := range data.Results {
7676
for _, path := range result.Result.Paths {
77-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: fmt.Sprintf("%s.%s", path.SubDomain, path.Domain)}
78-
s.results++
77+
select {
78+
case <-ctx.Done():
79+
return
80+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: fmt.Sprintf("%s.%s", path.SubDomain, path.Domain)}:
81+
s.results++
82+
}
7983
}
8084
}
8185
}()

pkg/subscraping/sources/c99/c99.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,12 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
8181

8282
for _, data := range response.Subdomains {
8383
if !strings.HasPrefix(data.Subdomain, ".") {
84-
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: data.Subdomain}
85-
s.results++
84+
select {
85+
case <-ctx.Done():
86+
return
87+
case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: data.Subdomain}:
88+
s.results++
89+
}
8690
}
8791
}
8892
}()

0 commit comments

Comments
 (0)