This commit is contained in:
shmilylty
2019-08-16 19:13:19 +08:00
parent 8d46ce0862
commit f52768632a
50 changed files with 161 additions and 162 deletions
+4 -4
View File
@@ -30,14 +30,14 @@ class Ask(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += 1
if '>Next<' not in resp.text:
break
+5 -5
View File
@@ -50,17 +50,17 @@ class Baidu(Search):
return
if len(domain) > 12: # 解决百度搜索结果中域名过长会显示不全的问题
# 获取百度跳转URL响应头的Location字段获取直链
subdomains_find = self.redirect_match(domain, resp.text)
subdomains = self.redirect_match(domain, resp.text)
else:
subdomains_find = self.match(domain, resp.text)
if not subdomains_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomains_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
# 合并搜索子域名搜索结果
self.subdomains = self.subdomains.union(subdomains_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += self.per_page_num
# 搜索页面没有出现下一页时停止搜索
if '&pn={next_pn}&'.format(next_pn=self.page_num) not in resp.text:
+4 -4
View File
@@ -36,15 +36,15 @@ class Bing(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomains_find = self.match(domain, resp.text)
if not subdomains_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomains_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
# 合并搜索子域名搜索结果
self.subdomains = self.subdomains.union(subdomains_find)
self.subdomains = self.subdomains.union(subdomains)
# 搜索页面没有出现下一页时停止搜索
if '<div class="sw_next>' not in resp.text:
break
+4 -4
View File
@@ -36,15 +36,15 @@ class BingAPI(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomains_find = self.match(domain, str(resp.json()))
if not subdomains_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(domain, str(resp.json()))
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomains_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
# 合并搜索子域名搜索结果
self.subdomains = self.subdomains.union(subdomains_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += self.per_page_num
if self.page_num >= self.limit_num: # 搜索条数限制
break
+4 -4
View File
@@ -30,14 +30,14 @@ class DuckDuckGO(Search):
resp = self.post(self.addr, data)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
try:
s = re.findall(r'name="s" value="(\d.*)"', resp.text)[-1]
dc = re.findall(r'name="dc" value="(\d.*)"', resp.text)
+4 -4
View File
@@ -32,13 +32,13 @@ class Exalead(Search):
resp = self.get(url=self.addr, params=params)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += self.per_page_num
if self.page_num > 1999:
break
+3 -3
View File
@@ -32,10 +32,10 @@ class FoFa(Search):
resp = self.get(self.addr, query)
if not resp:
return
subdomain_find = self.match(self.domain, resp.text)
if not subdomain_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(self.domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += 1
def run(self):
+4 -4
View File
@@ -40,13 +40,13 @@ class Google(Search):
resp = self.get(url=self.addr, params=payload)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
page_num += per_page_num
if 'start=' + str(page_num) not in resp.text:
break
+4 -4
View File
@@ -35,13 +35,13 @@ class GoogleAPI(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomain_find = self.match(domain, str(resp.json()))
if not subdomain_find:
subdomains = self.match(domain, str(resp.json()))
if not subdomains:
break
if not full_search:
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += self.per_page_num
if self.page_num > 100: # 免费的API只能查询前100条结果
break
+4 -4
View File
@@ -25,11 +25,11 @@ class ShodanAPI(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomain_find = self.match(self.domain, resp.text)
if not subdomain_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(self.domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if subdomain_find:
self.subdomains = self.subdomains.union(subdomain_find)
if subdomains:
self.subdomains = self.subdomains.union(subdomains)
page += 1
def run(self):
+4 -4
View File
@@ -31,14 +31,14 @@ class So(Search):
resp = self.get(url=self.addr, params=payload)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
page_num += 1
# 搜索页面没有出现下一页时停止搜索
if '<a id="snext"' not in resp.text:
+4 -4
View File
@@ -28,14 +28,14 @@ class Sogou(Search):
resp = self.get(self.addr, payload)
if not resp:
return
subdomain_find = self.match(domain, resp.text)
if not subdomain_find:
subdomains = self.match(domain, resp.text)
if not subdomains:
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomain_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
self.page_num += 1
# 搜索页面没有出现下一页时停止搜索
if '<a id="sogou_next"' not in resp.text:
+4 -4
View File
@@ -36,15 +36,15 @@ class Yahoo(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomains_find = self.match(domain, resp.text)
if not subdomains_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomains_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
# 合并搜索子域名搜索结果
self.subdomains = self.subdomains.union(subdomains_find)
self.subdomains = self.subdomains.union(subdomains)
if '>Next</a>' not in resp.text: # 搜索页面没有出现下一页时停止搜索
break
self.page_num += self.per_page_num
+4 -4
View File
@@ -36,15 +36,15 @@ class Yandex(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomains_find = self.match(domain, resp.text)
if not subdomains_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
if not full_search:
# 搜索中发现搜索出的结果有完全重复的结果就停止搜索
if subdomains_find.issubset(self.subdomains):
if subdomains.issubset(self.subdomains):
break
# 合并搜索子域名搜索结果
self.subdomains = self.subdomains.union(subdomains_find)
self.subdomains = self.subdomains.union(subdomains)
if '>next</a>' not in resp.text: # 搜索页面没有出现下一页时停止搜索
break
self.page_num += 1
+6 -6
View File
@@ -25,12 +25,12 @@ class ZoomEyeAPI(Search):
if not resp:
logger.log('FETAL', f'登录失败无法获取{self.source}的访问token')
return
resp_json = resp.json()
data = resp.json()
if resp.status_code == 200:
logger.log('DEBUG', f'{self.source}模块登录成功')
return resp_json.get('access_token')
return data.get('access_token')
else:
logger.log('ALERT', resp_json.get('message'))
logger.log('ALERT', data.get('message'))
exit(1)
def search(self):
@@ -48,10 +48,10 @@ class ZoomEyeAPI(Search):
resp = self.get(self.addr, params)
if not resp:
return
subdomain_find = self.match(self.domain, resp.text)
if not subdomain_find: # 搜索没有发现子域名则停止搜索
subdomains = self.match(self.domain, resp.text)
if not subdomains: # 搜索没有发现子域名则停止搜索
break
self.subdomains = self.subdomains.union(subdomain_find)
self.subdomains = self.subdomains.union(subdomains)
page_num += 1
if page_num > 500:
break