From 40000472a5071897e43ea2417125412d2278077b Mon Sep 17 00:00:00 2001 From: shmilylty Date: Mon, 28 Oct 2019 10:19:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B1=E4=BA=8Ednsdb.org=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E4=B8=8D=E5=9C=A8=20=E6=9A=82=E6=97=B6=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=AD=A4=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oneforall/modules/datasets/dnsdb.py | 92 ----------------------------- 1 file changed, 92 deletions(-) delete mode 100644 oneforall/modules/datasets/dnsdb.py diff --git a/oneforall/modules/datasets/dnsdb.py b/oneforall/modules/datasets/dnsdb.py deleted file mode 100644 index a0a0105..0000000 --- a/oneforall/modules/datasets/dnsdb.py +++ /dev/null @@ -1,92 +0,0 @@ -import time -import random -import cloudscraper -from bs4 import BeautifulSoup -from common.query import Query -from config import logger - - -class DNSdb(Query): - def __init__(self, domain): - Query.__init__(self) - self.domain = self.register(domain) - self.module = 'Dataset' - self.source = 'DNSdbQuery' - self.addr = 'http://www.dnsdb.org/' - self.url = f'{self.addr}{self.domain}/' - - def get_tokens(self): - """ - 绕过cloudFlare验证并获取taken - - :return: 绕过失败返回None 成功返回tokens - """ - scraper = cloudscraper.create_scraper() - scraper.interpreter = 'js2py' - scraper.proxies = self.get_proxy(self.source) - scraper.timeout = 10 - try: - tokens = scraper.get_tokens(self.url) - except Exception as e: - logger.log('ERROR', e.args) - return None - if len(tokens) != 2: - return None - return tokens - - def query(self): - """ - 向接口查询子域并做子域匹配 - """ - tokens = self.get_tokens() - if not tokens: - logger.log('ALERT', f'{self.source}模块绕过cloudFlare检查失败') - return False - self.cookie = tokens[0] - self.header = {'User-Agent': tokens[1]} - self.timeout = 10 - resp = self.get(self.url) - if not resp: - return - if 'index' in resp.text: - soup = BeautifulSoup(resp.text, features='lxml') - base = self.addr+self.domain - urls = list(map(lambda a: base + '/' + a.get('href'), - soup.find_all('a'))) - urls = urls[:-1] # idn域名暂时不考虑 - for url in urls: - resp = self.get(url) - if not resp: - return - subdomains = self.match(self.domain, resp.text) - # 合并搜索子域名搜索结果 - self.subdomains = self.subdomains.union(subdomains) - else: - subdomains = self.match(self.domain, resp.text) - # 合并搜索子域名搜索结果 - self.subdomains = self.subdomains.union(subdomains) - - def run(self): - """ - 类执行入口 - """ - self.begin() - self.query() - self.finish() - self.save_json() - self.gen_result() - self.save_db() - - -def do(domain): # 统一入口名字 方便多线程调用 - """ - 类统一调用入口 - - :param str domain: 域名 - """ - query = DNSdb(domain) - query.run() - - -if __name__ == '__main__': - do('example.com')