这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged

v2.7.0 #1549

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
4da8c77
remove protocol (#1516)
dogancanbakir Jan 24, 2025
8773308
add digitalyama source to passive scraping
nukunga Jan 24, 2025
71b884d
fix: correct syntax for digitalyama in sources_test.go
nukunga Jan 25, 2025
099637f
remove passivetotal (#1515)
dogancanbakir Jan 25, 2025
ad8eb0c
fix: add missing newline at end of digitalyama.go
nukunga Jan 25, 2025
a83d28a
test for workflow that RapidApi error in buildTest
nukunga Jan 25, 2025
608f579
add threatcrowd
hyni03 Jan 17, 2025
f7f3126
Merge branch 'dev' into add-threatcrowd
hyni03 Jan 26, 2025
10f1040
chore(deps): bump github.com/projectdiscovery/utils in /v2
dependabot[bot] Jan 27, 2025
d9a8c9a
Merge pull request #1519 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Jan 30, 2025
b27739f
chore(deps): bump github.com/projectdiscovery/ratelimit in /v2
dependabot[bot] Jan 30, 2025
6be50e7
chore(deps): bump github.com/projectdiscovery/hmap in /v2
dependabot[bot] Jan 30, 2025
6b649c4
Merge pull request #1522 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Jan 30, 2025
0e46c60
Merge pull request #1521 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Jan 30, 2025
c8c9961
chore(deps): bump github.com/projectdiscovery/gologger in /v2
dependabot[bot] Jan 30, 2025
dd66e42
Merge pull request #1518 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Jan 30, 2025
d1842ba
chore(deps): bump github.com/projectdiscovery/utils in /v2
dependabot[bot] Feb 3, 2025
8958ec7
Merge pull request #1527 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 3, 2025
618722c
chore(deps): bump github.com/projectdiscovery/hmap in /v2
dependabot[bot] Feb 3, 2025
f5dff60
Merge pull request #1526 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 3, 2025
1d50692
chore(deps): bump github.com/projectdiscovery/gologger in /v2
dependabot[bot] Feb 3, 2025
8c5459a
Merge pull request #1525 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 3, 2025
6cbfed9
FIX: query for downloading subdomains in netlas.go
thurrsense Feb 3, 2025
32dd39b
chore(deps): bump github.com/projectdiscovery/gologger in /v2
dependabot[bot] Feb 10, 2025
26e8f9d
Merge pull request #1534 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 10, 2025
6914e51
chore(deps): bump github.com/projectdiscovery/dnsx in /v2
dependabot[bot] Feb 10, 2025
acaa5ef
Merge pull request #1535 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 10, 2025
66430d4
chore(deps): bump github.com/projectdiscovery/hmap in /v2
dependabot[bot] Feb 10, 2025
d2a0f1d
Merge pull request #1536 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 10, 2025
16750c6
chore(deps): bump github.com/projectdiscovery/goflags in /v2
dependabot[bot] Feb 10, 2025
f77b5bd
Merge pull request #1533 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 10, 2025
bc2d8d7
update dnsrepo api endpoint
dogancanbakir Feb 17, 2025
2623ffd
minor
dogancanbakir Feb 17, 2025
262abb1
chore(deps): bump github.com/projectdiscovery/goflags in /v2
dependabot[bot] Feb 17, 2025
2ec0965
Merge pull request #1542 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 17, 2025
b9d4e9f
chore(deps): bump github.com/projectdiscovery/utils in /v2
dependabot[bot] Feb 17, 2025
0463b62
chore(deps): bump github.com/projectdiscovery/hmap in /v2
dependabot[bot] Feb 17, 2025
a2eb8ca
Merge pull request #1543 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 17, 2025
96cb5f4
Merge pull request #1546 from projectdiscovery/dependabot/go_modules/…
dependabot[bot] Feb 17, 2025
62fbcad
skip non-200 HTTP responses for anubis (#1541)
dogancanbakir Feb 18, 2025
cf2b9d7
fix virustotal limit err (#1548)
dogancanbakir Feb 20, 2025
3064274
Merge pull request #1517 from nukunga/feat/DigitalYama
dogancanbakir Feb 25, 2025
5da6dad
Merge pull request #1529 from thurrsense/dev
dogancanbakir Feb 25, 2025
ffa962a
Merge pull request #1540 from projectdiscovery/update_dnsrepo_api_end…
dogancanbakir Feb 25, 2025
61f4e53
Merge pull request #1508 from hyni03/add-threatcrowd
dogancanbakir Feb 25, 2025
aa7fd52
update version
dogancanbakir Feb 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ jobs:
HUNTER_API_KEY: ${{secrets.HUNTER_API_KEY}}
INTELX_API_KEY: ${{secrets.INTELX_API_KEY}}
LEAKIX_API_KEY: ${{secrets.LEAKIX_API_KEY}}
PASSIVETOTAL_API_KEY: ${{secrets.PASSIVETOTAL_API_KEY}}
QUAKE_API_KEY: ${{secrets.QUAKE_API_KEY}}
ROBTEX_API_KEY: ${{secrets.ROBTEX_API_KEY}}
SECURITYTRAILS_API_KEY: ${{secrets.SECURITYTRAILS_API_KEY}}
Expand Down
20 changes: 10 additions & 10 deletions v2/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ require (
github.com/json-iterator/go v1.1.12
github.com/lib/pq v1.10.9
github.com/projectdiscovery/chaos-client v0.5.2
github.com/projectdiscovery/dnsx v1.2.1
github.com/projectdiscovery/dnsx v1.2.2
github.com/projectdiscovery/fdmax v0.0.4
github.com/projectdiscovery/gologger v1.1.40
github.com/projectdiscovery/ratelimit v0.0.68
github.com/projectdiscovery/retryablehttp-go v1.0.95
github.com/projectdiscovery/utils v0.4.6
github.com/projectdiscovery/gologger v1.1.44
github.com/projectdiscovery/ratelimit v0.0.70
github.com/projectdiscovery/retryablehttp-go v1.0.99
github.com/projectdiscovery/utils v0.4.11
github.com/rs/xid v1.5.0
github.com/stretchr/testify v1.9.0
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80
Expand Down Expand Up @@ -71,10 +71,10 @@ require (
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/projectdiscovery/blackrock v0.0.1 // indirect
github.com/projectdiscovery/cdncheck v1.1.0 // indirect
github.com/projectdiscovery/fastdialer v0.2.14 // indirect
github.com/projectdiscovery/hmap v0.0.74 // indirect
github.com/projectdiscovery/fastdialer v0.3.0 // indirect
github.com/projectdiscovery/hmap v0.0.80 // indirect
github.com/projectdiscovery/machineid v0.0.0-20240226150047-2e2c51e35983 // indirect
github.com/projectdiscovery/networkpolicy v0.0.9 // indirect
github.com/projectdiscovery/networkpolicy v0.1.1 // indirect
github.com/refraction-networking/utls v1.6.7 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect
Expand Down Expand Up @@ -124,8 +124,8 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/projectdiscovery/goflags v0.1.64
github.com/projectdiscovery/retryabledns v1.0.93 // indirect
github.com/projectdiscovery/goflags v0.1.72
github.com/projectdiscovery/retryabledns v1.0.94 // indirect
golang.org/x/net v0.33.0 // indirect
golang.org/x/sys v0.28.0 // indirect
)
43 changes: 22 additions & 21 deletions v2/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -194,38 +194,39 @@ github.com/projectdiscovery/cdncheck v1.1.0 h1:qDITidmJsejzpk3rMkauCh6sjI2GH9hW/
github.com/projectdiscovery/cdncheck v1.1.0/go.mod h1:sZ8U4MjHSsyaTVjBbYWHT1cwUVvUYwDX1W+WvWRicIc=
github.com/projectdiscovery/chaos-client v0.5.2 h1:dN+7GXEypsJAbCD//dBcUxzAEAEH1fjc/7Rf4F/RiNU=
github.com/projectdiscovery/chaos-client v0.5.2/go.mod h1:KnoJ/NJPhll42uaqlDga6oafFfNw5l2XI2ajRijtDuU=
github.com/projectdiscovery/dnsx v1.2.1 h1:TxslYvp1Z/YZ4CP/J0gx5RYpvXREnVmyoacmTcGu5yg=
github.com/projectdiscovery/dnsx v1.2.1/go.mod h1:6dAsMCEDu7FArZy2qjyTeUQrqpZ4ITLU11fcmUvFqt0=
github.com/projectdiscovery/fastdialer v0.2.14 h1:/cndy+5celjoYzbk4LksHYOCTpFGIJY8RF/EK31Opjs=
github.com/projectdiscovery/fastdialer v0.2.14/go.mod h1:z5yKQ/YWaVrBMfdL6f5J7VytUx9wxc5vs/Lf51QelCw=
github.com/projectdiscovery/dnsx v1.2.2 h1:ZjUov0GOyrS8ERlKAAhk+AOkqzaYHBzCP0qZfO+6Ihg=
github.com/projectdiscovery/dnsx v1.2.2/go.mod h1:3iYm86OEqo0WxeGDkVl5WZNmG0qYE5TYNx8fBg6wX1I=
github.com/projectdiscovery/fastdialer v0.3.0 h1:/wMptjdsrAU/wiaA/U3lSgYGaYCGJH6xm0mLei6oMxk=
github.com/projectdiscovery/fastdialer v0.3.0/go.mod h1:Q0YLArvpx9GAfY/NcTPMCA9qZuVOGnuVoNYWzKBwxdQ=
github.com/projectdiscovery/fdmax v0.0.4 h1:K9tIl5MUZrEMzjvwn/G4drsHms2aufTn1xUdeVcmhmc=
github.com/projectdiscovery/fdmax v0.0.4/go.mod h1:oZLqbhMuJ5FmcoaalOm31B1P4Vka/CqP50nWjgtSz+I=
github.com/projectdiscovery/goflags v0.1.64 h1:FDfwdt9N97Hi8OuhbkDlKtVttpc/CRMIWQVa08VsHsI=
github.com/projectdiscovery/goflags v0.1.64/go.mod h1:3FyHIVQtnycNOc1LE3O1jj/XR5XuMdF9QfHd0ujhnX4=
github.com/projectdiscovery/gologger v1.1.40 h1:FSIhKnYKzuIEIz3RTg6JX9JtDKgkEzIEf2v5RYckoQ4=
github.com/projectdiscovery/gologger v1.1.40/go.mod h1:8AUxYXmClqOWJgZ5wknNn5rRK3UlrXQ/r9JjX+gp5Gg=
github.com/projectdiscovery/hmap v0.0.74 h1:j0TpS9fJxisfdGcIRjaZ3qgyjP3pBkRJf12ZWv64rOI=
github.com/projectdiscovery/hmap v0.0.74/go.mod h1:qEPAdq/gWQU/IEI+QMzSyL+HYdqayR64V9vGTI/W38c=
github.com/projectdiscovery/goflags v0.1.72 h1:tSR+BnfDLbfTGYYVg4k1oQcFOoYXPY1pllV0MHtx3ek=
github.com/projectdiscovery/goflags v0.1.72/go.mod h1:C2cZ+PJRx7bbArEp/qFUixjsYFDd3etFNNHMUdJqfr8=
github.com/projectdiscovery/gologger v1.1.44 h1:tprWkKzKt37pz4HG2tvhzrOCQNIn8A3CEki6BRzXE5o=
github.com/projectdiscovery/gologger v1.1.44/go.mod h1:ZQS0eJq7BwKM0xxFqwZFUkAH1bkIqe90EOFBP4LENH4=
github.com/projectdiscovery/hmap v0.0.80 h1:2PSo3qQNKanK6i6DF4NzsVEJANe6tMIBmBtxvF4AKK8=
github.com/projectdiscovery/hmap v0.0.80/go.mod h1:YmZ9qwtl7MDJYrpxJ+MEw4N4V58w18WGPsQHgpdIV0s=
github.com/projectdiscovery/machineid v0.0.0-20240226150047-2e2c51e35983 h1:ZScLodGSezQVwsQDtBSMFp72WDq0nNN+KE/5DHKY5QE=
github.com/projectdiscovery/machineid v0.0.0-20240226150047-2e2c51e35983/go.mod h1:3G3BRKui7nMuDFAZKR/M2hiOLtaOmyukT20g88qRQjI=
github.com/projectdiscovery/networkpolicy v0.0.9 h1:IrlDoYZagNNO8y+7iZeHT8k5izE+nek7TdtvEBwCxqk=
github.com/projectdiscovery/networkpolicy v0.0.9/go.mod h1:XFJ2Lnv8BE/ziQCFjBHMsH1w6VmkPiQtk+NlBpdMU7M=
github.com/projectdiscovery/ratelimit v0.0.68 h1:gMLD1aB4R8w7BIpKvtQf6TNb6+5zsJO9WSRWZ9pxwe4=
github.com/projectdiscovery/ratelimit v0.0.68/go.mod h1:ieU9nNu9Ie8nVMKdj3bsX3JA3kfNI8qn4pkNXsyRxsw=
github.com/projectdiscovery/retryabledns v1.0.93 h1:iKcEEEH77WwUf5EGimhHxCDdqBF2kOl7WhQi3VQXB8Q=
github.com/projectdiscovery/retryabledns v1.0.93/go.mod h1:f5HmPdVr3CUm4tHHiB0UyiZVQTYYAKTqfoj8M2gCvqo=
github.com/projectdiscovery/retryablehttp-go v1.0.95 h1:5CHhWLMovX1MD9W3HzlsMBY3xA+dyeqta2gSWo3j92E=
github.com/projectdiscovery/retryablehttp-go v1.0.95/go.mod h1:/7CHaD7vqnqBD++AI0JsJdcYyq1Wbf4vMhddjy7sZjI=
github.com/projectdiscovery/utils v0.4.6 h1:lwbS5d/f70wyDwuwF6lAVkn390hEI/0LOtqyqJEI+qE=
github.com/projectdiscovery/utils v0.4.6/go.mod h1:eevtW7+x7ydrBdmOenmHdqqJKRv3VqY2QUR7vs4qRfU=
github.com/projectdiscovery/networkpolicy v0.1.1 h1:iv9gECukD5KAZp98KVh+T3TEPTkY6dr3sKsdbh9XyZU=
github.com/projectdiscovery/networkpolicy v0.1.1/go.mod h1:/Hg2ieLewSe/BagFF+UYXAQo3NwmVMq16MSAl492XkU=
github.com/projectdiscovery/ratelimit v0.0.70 h1:SxFQcIKO3hppmEn9MOaDiqX2NXceji0vd8ER+eCHQjc=
github.com/projectdiscovery/ratelimit v0.0.70/go.mod h1:jg253i7eeKBIV5QpTpQv6+lZXr53XmKGBLS3dwlmRWM=
github.com/projectdiscovery/retryabledns v1.0.94 h1:MvxtRcmvxhxikxT7p/E40hcYRWRiL5fg/JQ8bpBaz+0=
github.com/projectdiscovery/retryabledns v1.0.94/go.mod h1:croGTyMM4yNlrSWA/X7xNe3c0c7mDmCdbm8goLd8Bak=
github.com/projectdiscovery/retryablehttp-go v1.0.99 h1:S+lQqo1ZnO5aoWsBV8HapGslJSaYVUII954SnH1RSjw=
github.com/projectdiscovery/retryablehttp-go v1.0.99/go.mod h1:8Mv9L9vjmam16garE6/dqLFkT0ZcfLNSo9O1zFBiPlE=
github.com/projectdiscovery/utils v0.4.11 h1:MWqCFxYINQPa4KWMRNah7W0N1COGRhqOpGVhiR/VaO0=
github.com/projectdiscovery/utils v0.4.11/go.mod h1:47tvqErksJELcxDBH8An2i9qvUe5E1qR7B72xxqiyqU=
github.com/refraction-networking/utls v1.6.7 h1:zVJ7sP1dJx/WtVuITug3qYUq034cDq9B2MR1K67ULZM=
github.com/refraction-networking/utls v1.6.7/go.mod h1:BC3O4vQzye5hqpmDTWUqi4P5DDhzJfkV1tdqtawQIH0=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d h1:hrujxIzL1woJ7AwssoOcM/tq5JjjG2yYOc8odClEiXA=
Expand Down
10 changes: 5 additions & 5 deletions v2/pkg/passive/sources.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import (
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/intelx"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/leakix"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/netlas"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/passivetotal"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/quake"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/rapiddns"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/redhuntlabs"
Expand All @@ -43,10 +42,12 @@ import (
"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/threatbook"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/threatcrowd"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/virustotal"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/waybackarchive"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/whoisxmlapi"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/zoomeyeapi"
"github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/digitalyama"
mapsutil "github.com/projectdiscovery/utils/maps"
)

Expand Down Expand Up @@ -75,7 +76,6 @@ var AllSources = [...]subscraping.Source{
&intelx.Source{},
&netlas.Source{},
&leakix.Source{},
&passivetotal.Source{},
&quake.Source{},
&rapiddns.Source{},
&redhuntlabs.Source{},
Expand All @@ -85,6 +85,7 @@ var AllSources = [...]subscraping.Source{
&shodan.Source{},
&sitedossier.Source{},
&threatbook.Source{},
&threatcrowd.Source{},
&virustotal.Source{},
&waybackarchive.Source{},
&whoisxmlapi.Source{},
Expand All @@ -94,12 +95,11 @@ var AllSources = [...]subscraping.Source{
// &reconcloud.Source{}, // failing due to cloudflare bot protection
&builtwith.Source{},
&hudsonrock.Source{},
&digitalyama.Source{},
}

var sourceWarnings = mapsutil.NewSyncLockMap[string, string](
mapsutil.WithMap(mapsutil.Map[string, string]{
"passivetotal": "New API credentials for PassiveTotal can't be generated, but existing user account credentials are still functional. Please ensure your integrations are using valid credentials.",
}))
mapsutil.WithMap(mapsutil.Map[string, string]{}))

var NameSourceMap = make(map[string]subscraping.Source, len(AllSources))

Expand Down
6 changes: 3 additions & 3 deletions v2/pkg/passive/sources_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ var (
"hackertarget",
"intelx",
"netlas",
"passivetotal",
"quake",
"rapiddns",
"redhuntlabs",
Expand All @@ -43,6 +42,7 @@ var (
"shodan",
"sitedossier",
"threatbook",
"threatcrowd",
"virustotal",
"waybackarchive",
"whoisxmlapi",
Expand All @@ -54,6 +54,7 @@ var (
// "reconcloud",
"builtwith",
"hudsonrock",
"digitalyama",
}

expectedDefaultSources = []string{
Expand All @@ -74,7 +75,6 @@ var (
"fullhunt",
"hackertarget",
"intelx",
"passivetotal",
"quake",
"redhuntlabs",
"robtex",
Expand All @@ -89,6 +89,7 @@ var (
// "threatminer",
// "reconcloud",
"builtwith",
"digitalyama",
}

expectedDefaultRecursiveSources = []string{
Expand All @@ -100,7 +101,6 @@ var (
"dnsdb",
"digitorus",
"hackertarget",
"passivetotal",
"securitytrails",
"virustotal",
"leakix",
Expand Down
2 changes: 1 addition & 1 deletion v2/pkg/runner/banners.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const banner = `
const ToolName = `subfinder`

// Version is the current version of subfinder
const version = `v2.6.8`
const version = `v2.7.0`

// showBanner is used to show the banner to the user
func showBanner() {
Expand Down
1 change: 1 addition & 0 deletions v2/pkg/runner/enumerate.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
const maxNumCount = 2

var replacer = strings.NewReplacer(
"/", "",
"•.", "",
"•", "",
"*.", "",
Expand Down
1 change: 1 addition & 0 deletions v2/pkg/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ func (r *Runner) EnumerateMultipleDomainsWithCtx(ctx context.Context, reader io.
ip, _ := regexp.Compile(`^([0-9\.]+$)`)
for scanner.Scan() {
domain := preprocessDomain(scanner.Text())
domain = replacer.Replace(domain)

if domain == "" || (r.options.ExcludeIps && ip.MatchString(domain)) {
continue
Expand Down
6 changes: 6 additions & 0 deletions v2/pkg/subscraping/sources/anubis/anubis.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package anubis
import (
"context"
"fmt"
"net/http"
"time"

jsoniter "github.com/json-iterator/go"
Expand Down Expand Up @@ -38,6 +39,11 @@ func (s *Source) Run(ctx context.Context, domain string, session *subscraping.Se
return
}

if resp.StatusCode != http.StatusOK {
resp.Body.Close()
return
}

var subdomains []string
err = jsoniter.NewDecoder(resp.Body).Decode(&subdomains)
if err != nil {
Expand Down
128 changes: 128 additions & 0 deletions v2/pkg/subscraping/sources/digitalyama/digitalyama.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
package digitalyama

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 {
apiKeys []string
timeTaken time.Duration
errors int
results int
skipped bool
}

type digitalYamaResponse struct {
Query string `json:"query"`
Count int `json:"count"`
Subdomains []string `json:"subdomains"`
UsageSummary struct {
QueryCost float64 `json:"query_cost"`
CreditsRemaining float64 `json:"credits_remaining"`
} `json:"usage_summary"`
}

// 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())

randomApiKey := subscraping.PickRandom(s.apiKeys, s.Name())
if randomApiKey == "" {
s.skipped = true
return
}

searchURL := fmt.Sprintf("https://api.digitalyama.com/subdomain_finder?domain=%s", domain)
resp, err := session.Get(ctx, searchURL, "", map[string]string{"x-api-key": randomApiKey})
if err != nil {
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
s.errors++
return
}
defer resp.Body.Close()

if resp.StatusCode != 200 {
var errResponse struct {
Detail []struct {
Loc []string `json:"loc"`
Msg string `json:"msg"`
Type string `json:"type"`
} `json:"detail"`
}
err = jsoniter.NewDecoder(resp.Body).Decode(&errResponse)
if err != nil {
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: fmt.Errorf("unexpected status code %d", resp.StatusCode)}
s.errors++
return
}
if len(errResponse.Detail) > 0 {
errMsg := errResponse.Detail[0].Msg
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: fmt.Errorf("%s (code %d)", errMsg, resp.StatusCode)}
} else {
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: fmt.Errorf("unexpected status code %d", resp.StatusCode)}
}
s.errors++
return
}

var response digitalYamaResponse
err = jsoniter.NewDecoder(resp.Body).Decode(&response)
if err != nil {
results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
s.errors++
return
}

for _, subdomain := range response.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 "digitalyama"
}

func (s *Source) IsDefault() bool {
return true
}

func (s *Source) HasRecursiveSupport() bool {
return false
}

func (s *Source) NeedsKey() bool {
return true
}

func (s *Source) AddApiKeys(keys []string) {
s.apiKeys = keys
}

func (s *Source) Statistics() subscraping.Statistics {
return subscraping.Statistics{
Errors: s.errors,
Results: s.results,
TimeTaken: s.timeTaken,
Skipped: s.skipped,
}
}
Loading
Loading