发现重复结果bug

This commit is contained in:
Jing Ling
2020-08-31 01:18:23 +08:00
parent d3e22611fd
commit d88523104d
+12 -6
View File
@@ -52,9 +52,10 @@ def gen_req_url(domain, port):
return url return url
def gen_req_urls(data, ports): def gen_req_data(data, ports):
logger.log('INFOR', 'Generating request urls') logger.log('INFOR', 'Generating request urls')
urls = set() req_data = list()
req_urls = set()
for info in data: for info in data:
resolve = info.get('resolve') resolve = info.get('resolve')
# 解析不成功的子域不进行http请求探测 # 解析不成功的子域不进行http请求探测
@@ -62,8 +63,13 @@ def gen_req_urls(data, ports):
continue continue
subdomain = info.get('subdomain') subdomain = info.get('subdomain')
for port in ports: for port in ports:
urls.add(gen_req_url(subdomain, port)) tmp_info = info.copy()
return urls tmp_info['port'] = port
url = gen_req_url(subdomain, port)
tmp_info['url'] = url
req_data.append(tmp_info)
req_urls.add(url)
return req_data, req_urls
def get_html_title(markup): def get_html_title(markup):
@@ -193,7 +199,6 @@ def bulk_request(urls):
def gen_new_info(info, resp): def gen_new_info(info, resp):
port = resp.raw._pool.port port = resp.raw._pool.port
info['port'] = port info['port'] = port
info['url'] = resp.url
info['reason'] = resp.reason info['reason'] = resp.reason
code = resp.status_code code = resp.status_code
info['status'] = code info['status'] = code
@@ -216,6 +221,7 @@ def gen_new_info(info, resp):
def gen_new_data(data, resp_list): def gen_new_data(data, resp_list):
# to fix: 重复结果
new_data = list() new_data = list()
for resp in resp_list: for resp in resp_list:
subdomain = resp.raw._pool.host subdomain = resp.raw._pool.host
@@ -237,7 +243,7 @@ def run_request(domain, data, port):
logger.log('INFOR', f'Start requesting subdomains of {domain}') logger.log('INFOR', f'Start requesting subdomains of {domain}')
data = utils.set_id_none(data) data = utils.set_id_none(data)
ports = get_port_seq(port) ports = get_port_seq(port)
req_urls = gen_req_urls(data, ports) req_data, req_urls = gen_req_data(data, ports)
resp_list = bulk_request(req_urls) resp_list = bulk_request(req_urls)
new_data = gen_new_data(data, resp_list) new_data = gen_new_data(data, resp_list)
count = utils.count_alive(new_data) count = utils.count_alive(new_data)