Skip to content

Commit 4febfae

Browse files
authored
Merge pull request #337 from lalalashenle/master
修改censys api地址以及对应的调用逻辑
2 parents 9ecfda2 + b5de606 commit 4febfae

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

modules/certificates/censys_api.py

+17-13
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def __init__(self, domain):
99
self.domain = domain
1010
self.module = 'Certificate'
1111
self.source = "CensysAPIQuery"
12-
self.addr = 'https://search.censys.io/api/v1/search/certificates'
12+
self.addr = 'https://search.censys.io/api/v2/certificates/search'
1313
self.id = settings.censys_api_id
1414
self.secret = settings.censys_api_secret
1515
self.delay = 3.0 # Censys 接口查询速率限制 最快2.5秒查1次
@@ -20,26 +20,30 @@ def query(self):
2020
"""
2121
self.header = self.get_header()
2222
self.proxy = self.get_proxy(self.source)
23-
data = {
24-
'query': f'parsed.names: {self.domain}',
25-
'page': 1,
26-
'fields': ['parsed.subject_dn', 'parsed.names'],
27-
'flatten': True}
28-
resp = self.post(self.addr, json=data, auth=(self.id, self.secret))
23+
params = {
24+
'q': f'names: {self.domain}',
25+
'per_page': 100,
26+
}
27+
resp = self.get(self.addr, params=params, auth=(self.id, self.secret))
2928
if not resp:
3029
return
3130
json = resp.json()
3231
status = json.get('status')
33-
if status != 'ok':
32+
if status != 'OK':
3433
logger.log('ALERT', f'{self.source} module {status}')
3534
return
3635
subdomains = self.match_subdomains(resp.text)
3736
self.subdomains.update(subdomains)
38-
pages = json.get('metadata').get('pages')
39-
for page in range(2, pages + 1):
40-
data['page'] = page
41-
resp = self.post(self.addr, json=data, auth=(self.id, self.secret))
42-
self.subdomains = self.collect_subdomains(resp)
37+
next_cursor = json.get("result").get("links").get("next")
38+
while next_cursor:
39+
tmp_params = {
40+
'q': f'names: {self.domain}',
41+
'per_page': 100,
42+
"cursor": next_cursor
43+
}
44+
tmp_resp = self.get(self.addr, params=tmp_params, auth=(self.id, self.secret))
45+
self.subdomains = self.collect_subdomains(tmp_resp)
46+
next_cursor = tmp_resp.json().get("result").get("links").get("next")
4347

4448
def run(self):
4549
"""

0 commit comments

Comments
 (0)