为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'
f'{self.subdomains}')
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)
# 数据库导出
if self.export:
+6 -5
View File
@@ -288,17 +288,18 @@ def check_value(values):
return values
def export_all(format, datas):
def export_all(format, path, datas):
"""
将所有结果数据导出到一个文件
:param format: 导出文件格式
:param datas: 导出的结果数据
:param str format: 导出文件格式
:param str path: 导出文件路径
:param list datas: 待导出的结果数据
"""
format = check_format(format, len(datas))
timestamp = get_timestamp()
name = f'all_subdomain_{timestamp}'
path = check_path(None, name, format)
name = f'all_subdomain_result_{timestamp}'
path = check_path(path, name, format)
row_list = list()
for row in datas:
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 db: 要导出的数据库路径(默认为results/result.sqlite3)
:param int valid: 导出子域的有效性(默认None)
:param str format: 导出格式(默认csv)
:param str path: 导出路径(默认None)
:param str format: 导出文件格式(默认csv)
:param str path: 导出文件路径(默认None)
:param bool show: 终端显示导出数据(默认False)
"""
+8 -5
View File
@@ -65,6 +65,7 @@ class OneForAll(object):
参数port可选值有'default', 'small', 'large', 详见config.py配置
参数format可选格式有'txt', 'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
参数path默认None使用OneForAll结果目录生成路径
:param str target: 单个域名或者每行一个域名的文件路径(必需参数)
:param bool brute: 使用爆破模块(默认False)
@@ -72,12 +73,14 @@ class OneForAll(object):
:param bool req: HTTP请求子域(默认True)
:param str port: 请求验证子域的端口范围(默认只探测80端口)
:param int valid: 导出子域的有效性(默认None)
:param str format: 导出格式(默认csv)
:param str format: 导出文件格式(默认csv)
:param str path: 导出文件路径(默认None)
:param bool takeover: 检查子域接管(默认False)
:param bool show: 终端显示导出数据(默认False)
"""
def __init__(self, target, brute=None, dns=None, req=None, port='default',
valid=None, format='csv', takeover=False, show=False):
def __init__(self, target, brute=None, dns=None, req=None,
port='default', valid=None, format='csv', path=None,
takeover=False, show=False):
self.target = target
self.port = port
self.domains = set()
@@ -90,6 +93,7 @@ class OneForAll(object):
self.takeover = takeover
self.valid = valid
self.format = format
self.path = path
self.show = show
def main(self):
@@ -197,8 +201,7 @@ class OneForAll(object):
if self.domains:
for self.domain in self.domains:
self.main()
if len(self.domains) >= 2:
utils.export_all(self.format, self.datas)
utils.export_all(self.format, self.path, self.datas)
else:
logger.log('FATAL', f'获取域名失败')
logger.log('INFOR', f'结束运行OneForAll')