mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-08-26 04:47:48 +08:00
修复路径问题
This commit is contained in:
+13
-20
@@ -159,26 +159,20 @@ def check_path(path, name, format):
|
|||||||
"""
|
"""
|
||||||
filename = f'{name}.{format}'
|
filename = f'{name}.{format}'
|
||||||
default_path = config.result_save_dir.joinpath(filename)
|
default_path = config.result_save_dir.joinpath(filename)
|
||||||
if path is None:
|
if isinstance(path, str):
|
||||||
path = default_path
|
path = repr(path).replace('\\', '/') # 将路径中的反斜杠替换为正斜杠
|
||||||
try:
|
path = path.replace('\'', '') # 去除多余的转义
|
||||||
path = Path(path)
|
|
||||||
except Exception as e:
|
|
||||||
logger.log('ERROR', e.args)
|
|
||||||
path = default_path
|
|
||||||
else:
|
else:
|
||||||
if not path.exists():
|
|
||||||
logger.log('ALERT', f'不存在{path}目录将会新建')
|
|
||||||
path.mkdir(parents=True, exist_ok=True)
|
|
||||||
path = path.joinpath(filename)
|
|
||||||
if path.is_dir():
|
|
||||||
path = path.joinpath(filename)
|
|
||||||
if path.exists():
|
|
||||||
logger.log('ALERT', f'存在{path}文件将会覆盖')
|
|
||||||
# 意外情况
|
|
||||||
if not path:
|
|
||||||
path = default_path
|
path = default_path
|
||||||
logger.log('DEBUG', f'结果保存路径{path}')
|
path = Path(path)
|
||||||
|
if not path.suffix: # 输入是目录的情况
|
||||||
|
path = path.joinpath(filename)
|
||||||
|
parent_dir = path.parent
|
||||||
|
if not parent_dir.exists():
|
||||||
|
logger.log('ALERT', f'不存在{parent_dir}目录将会新建')
|
||||||
|
parent_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
if path.exists():
|
||||||
|
logger.log('ALERT', f'存在{path}文件将会覆盖')
|
||||||
return path
|
return path
|
||||||
|
|
||||||
|
|
||||||
@@ -216,12 +210,10 @@ def save_data(path, data):
|
|||||||
with open(path, 'w', encoding="utf-8",
|
with open(path, 'w', encoding="utf-8",
|
||||||
errors='ignore', newline='') as file:
|
errors='ignore', newline='') as file:
|
||||||
file.write(data)
|
file.write(data)
|
||||||
logger.log('ALERT', f'结果输出{path}')
|
|
||||||
return True
|
return True
|
||||||
except TypeError:
|
except TypeError:
|
||||||
with open(path, 'wb') as file:
|
with open(path, 'wb') as file:
|
||||||
file.write(data)
|
file.write(data)
|
||||||
logger.log('ALERT', f'结果输出{path}')
|
|
||||||
return True
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.log('ERROR', e.args)
|
logger.log('ERROR', e.args)
|
||||||
@@ -306,6 +298,7 @@ def export_all(format, path, datas):
|
|||||||
timestamp = get_timestamp()
|
timestamp = get_timestamp()
|
||||||
name = f'all_subdomain_result_{timestamp}'
|
name = f'all_subdomain_result_{timestamp}'
|
||||||
path = check_path(path, name, format)
|
path = check_path(path, name, format)
|
||||||
|
logger.log('INFOR', f'所有主域的子域结果 {path}')
|
||||||
row_list = list()
|
row_list = list()
|
||||||
for row in datas:
|
for row in datas:
|
||||||
row.pop('header')
|
row.pop('header')
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import fire
|
|||||||
|
|
||||||
from common import utils
|
from common import utils
|
||||||
from common.database import Database
|
from common.database import Database
|
||||||
|
from config import logger
|
||||||
|
|
||||||
|
|
||||||
def export(table, db=None, valid=False, path=None, format='csv', show=False):
|
def export(table, db=None, valid=False, path=None, format='csv', show=False):
|
||||||
@@ -47,6 +48,7 @@ def export(table, db=None, valid=False, path=None, format='csv', show=False):
|
|||||||
data = rows.export(format)
|
data = rows.export(format)
|
||||||
database.close()
|
database.close()
|
||||||
utils.save_data(path, data)
|
utils.save_data(path, data)
|
||||||
|
logger.log('INFOR', f'{table}主域的子域结果 {path}')
|
||||||
data_dict = rows.as_dict()
|
data_dict = rows.as_dict()
|
||||||
return data_dict
|
return data_dict
|
||||||
|
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class Takeover(Module):
|
|||||||
self.subdomains = utils.get_domains(self.target)
|
self.subdomains = utils.get_domains(self.target)
|
||||||
self.format = utils.check_format(self.format, len(self.subdomains))
|
self.format = utils.check_format(self.format, len(self.subdomains))
|
||||||
timestamp = utils.get_timestamp()
|
timestamp = utils.get_timestamp()
|
||||||
name = f'all_subdomain_{timestamp}'
|
name = f'takeover_check_result_{timestamp}'
|
||||||
self.path = utils.check_path(self.path, name, self.format)
|
self.path = utils.check_path(self.path, name, self.format)
|
||||||
if self.subdomains:
|
if self.subdomains:
|
||||||
logger.log('INFOR', f'正在检查子域接管风险')
|
logger.log('INFOR', f'正在检查子域接管风险')
|
||||||
@@ -160,7 +160,8 @@ class Takeover(Module):
|
|||||||
elapsed = round(end - start, 1)
|
elapsed = round(end - start, 1)
|
||||||
logger.log('INFOR', f'{self.source}模块耗时{elapsed}秒'
|
logger.log('INFOR', f'{self.source}模块耗时{elapsed}秒'
|
||||||
f'发现{len(self.results)}个子域存在接管风险')
|
f'发现{len(self.results)}个子域存在接管风险')
|
||||||
logger.log('DEBUG', f'结束执行{self.source}模块')
|
logger.log('INFOR', f'子域接管风险检查结果 {self.path}')
|
||||||
|
logger.log('INFOR', f'结束执行{self.source}模块')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
Reference in New Issue
Block a user