为OneForAll入口添加path参数

This commit is contained in:
Jing Ling
2020-02-18 16:00:11 +08:00
parent 51307ae19c
commit 247cb65212
4 changed files with 17 additions and 13 deletions
+1 -1
View File
@@ -302,7 +302,7 @@ class AIOBrute(Module):
logger.log('DEBUG', f'{self.source}模块发现{self.domain}的域名:\n' logger.log('DEBUG', f'{self.source}模块发现{self.domain}的域名:\n'
f'{self.subdomains}') f'{self.subdomains}')
if not self.path: if not self.path:
name = f'{self.domain}_brute.{self.format}' name = f'{self.domain}_brute_result.{self.format}'
self.path = config.result_save_path.joinpath(name) self.path = config.result_save_path.joinpath(name)
# 数据库导出 # 数据库导出
if self.export: if self.export:
+6 -5
View File
@@ -288,17 +288,18 @@ def check_value(values):
return values return values
def export_all(format, datas): def export_all(format, path, datas):
""" """
将所有结果数据导出到一个文件 将所有结果数据导出到一个文件
:param format: 导出文件格式 :param str format: 导出文件格式
:param datas: 导出的结果数据 :param str path: 导出文件路径
:param list datas: 待导出的结果数据
""" """
format = check_format(format, len(datas)) format = check_format(format, len(datas))
timestamp = get_timestamp() timestamp = get_timestamp()
name = f'all_subdomain_{timestamp}' name = f'all_subdomain_result_{timestamp}'
path = check_path(None, name, format) path = check_path(path, name, format)
row_list = list() row_list = list()
for row in datas: for row in datas:
row.pop('header') row.pop('header')
+2 -2
View File
@@ -30,8 +30,8 @@ def export(table, db=None, valid=None, path=None, format='csv', show=False):
:param str table: 要导出的表 :param str table: 要导出的表
:param str db: 要导出的数据库路径(默认为results/result.sqlite3) :param str db: 要导出的数据库路径(默认为results/result.sqlite3)
:param int valid: 导出子域的有效性(默认None) :param int valid: 导出子域的有效性(默认None)
:param str format: 导出格式(默认csv) :param str format: 导出文件格式(默认csv)
:param str path: 导出路径(默认None) :param str path: 导出文件路径(默认None)
:param bool show: 终端显示导出数据(默认False) :param bool show: 终端显示导出数据(默认False)
""" """
+8 -5
View File
@@ -65,6 +65,7 @@ class OneForAll(object):
参数port可选值有'default', 'small', 'large', 详见config.py配置 参数port可选值有'default', 'small', 'large', 详见config.py配置
参数format可选格式有'txt', 'rst', 'csv', 'tsv', 'json', 'yaml', 'html', 参数format可选格式有'txt', 'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods' 'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
参数path默认None使用OneForAll结果目录生成路径
:param str target: 单个域名或者每行一个域名的文件路径(必需参数) :param str target: 单个域名或者每行一个域名的文件路径(必需参数)
:param bool brute: 使用爆破模块(默认False) :param bool brute: 使用爆破模块(默认False)
@@ -72,12 +73,14 @@ class OneForAll(object):
:param bool req: HTTP请求子域(默认True) :param bool req: HTTP请求子域(默认True)
:param str port: 请求验证子域的端口范围(默认只探测80端口) :param str port: 请求验证子域的端口范围(默认只探测80端口)
:param int valid: 导出子域的有效性(默认None) :param int valid: 导出子域的有效性(默认None)
:param str format: 导出格式(默认csv) :param str format: 导出文件格式(默认csv)
:param str path: 导出文件路径(默认None)
:param bool takeover: 检查子域接管(默认False) :param bool takeover: 检查子域接管(默认False)
:param bool show: 终端显示导出数据(默认False) :param bool show: 终端显示导出数据(默认False)
""" """
def __init__(self, target, brute=None, dns=None, req=None, port='default', def __init__(self, target, brute=None, dns=None, req=None,
valid=None, format='csv', takeover=False, show=False): port='default', valid=None, format='csv', path=None,
takeover=False, show=False):
self.target = target self.target = target
self.port = port self.port = port
self.domains = set() self.domains = set()
@@ -90,6 +93,7 @@ class OneForAll(object):
self.takeover = takeover self.takeover = takeover
self.valid = valid self.valid = valid
self.format = format self.format = format
self.path = path
self.show = show self.show = show
def main(self): def main(self):
@@ -197,8 +201,7 @@ class OneForAll(object):
if self.domains: if self.domains:
for self.domain in self.domains: for self.domain in self.domains:
self.main() self.main()
if len(self.domains) >= 2: utils.export_all(self.format, self.path, self.datas)
utils.export_all(self.format, self.datas)
else: else:
logger.log('FATAL', f'获取域名失败') logger.log('FATAL', f'获取域名失败')
logger.log('INFOR', f'结束运行OneForAll') logger.log('INFOR', f'结束运行OneForAll')