Merge branch 'master' of https://github.com/shmilylty/OneForAll into master

This commit is contained in:
JrD
2020-10-10 10:26:03 +08:00
5 changed files with 16 additions and 12 deletions
+10 -6
View File
@@ -556,7 +556,7 @@ class Brute(Module):
brute.py --target d.com --fuzz True --place m.*.d.com --fuzzlist subnames.txt run brute.py --target d.com --fuzz True --place m.*.d.com --fuzzlist subnames.txt run
Note: Note:
--format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (result format) --format csv/json (result format)
--path Result path (default None, automatically generated) --path Result path (default None, automatically generated)
@@ -614,7 +614,9 @@ class Brute(Module):
logger.log('INFOR', f'Generating dictionary for {domain}') logger.log('INFOR', f'Generating dictionary for {domain}')
dict_set = set() dict_set = set()
# 如果domain不是self.subdomain 而是self.domain的子域则生成递归爆破字典 # 如果domain不是self.subdomain 而是self.domain的子域则生成递归爆破字典
if self.place is None: if self.word:
self.place = ''
if not self.place:
self.place = '*.' + domain self.place = '*.' + domain
wordlist = self.wordlist wordlist = self.wordlist
main_domain = utils.get_main_domain(domain) main_domain = utils.get_main_domain(domain)
@@ -728,13 +730,15 @@ class Brute(Module):
if self.check_env: if self.check_env:
utils.check_env() utils.check_env()
self.domains = utils.get_domains(self.target, self.targets) self.domains = utils.get_domains(self.target, self.targets)
all_subdomains = list()
for self.domain in self.domains: for self.domain in self.domains:
self.results = list() # 置空
all_subdomains = list()
self.check_brute_params() self.check_brute_params()
if self.recursive_brute: if self.recursive_brute:
logger.log('INFOR', f'Start recursively brute the 1 layer subdomain' logger.log('INFOR', f'Start recursively brute the 1 layer subdomain'
f' of {self.domain}') f' of {self.domain}')
valid_subdomains = self.main(self.domain) valid_subdomains = self.main(self.domain)
all_subdomains.extend(valid_subdomains) all_subdomains.extend(valid_subdomains)
# 递归爆破下一层的子域 # 递归爆破下一层的子域
@@ -742,8 +746,8 @@ class Brute(Module):
if self.recursive_brute: if self.recursive_brute:
for layer_num in range(1, self.recursive_depth): for layer_num in range(1, self.recursive_depth):
# 之前已经做过1层子域爆破 当前实际递归层数是layer+1 # 之前已经做过1层子域爆破 当前实际递归层数是layer+1
logger.log('INFOR', f'Start recursively brute the {layer_num + 1} layer' logger.log('INFOR', f'Start recursively brute the {layer_num + 1} '
f' subdomain of {self.domain}') f'layer subdomain of {self.domain}')
for subdomain in all_subdomains: for subdomain in all_subdomains:
self.place = '*.' + subdomain self.place = '*.' + subdomain
# 进行下一层子域爆破的限制条件 # 进行下一层子域爆破的限制条件
@@ -752,7 +756,7 @@ class Brute(Module):
valid_subdomains = self.main(subdomain) valid_subdomains = self.main(subdomain)
all_subdomains.extend(valid_subdomains) all_subdomains.extend(valid_subdomains)
logger.log('INFOR', f'Finished {self.source} module\'s brute {self.domain}') logger.log('INFOR', f'Finished {self.source} module to brute {self.domain}')
if not self.path: if not self.path:
name = f'{self.domain}_brute_result.{self.format}' name = f'{self.domain}_brute_result.{self.format}'
self.path = settings.result_save_dir.joinpath(name) self.path = settings.result_save_dir.joinpath(name)
+1 -1
View File
@@ -59,7 +59,7 @@ delete_massdns_result = True
only_save_valid = True # 是否在处理爆破结果时只存入解析成功的子域 only_save_valid = True # 是否在处理爆破结果时只存入解析成功的子域
check_time = 10 # 检查字典配置停留时间(默认10秒) check_time = 10 # 检查字典配置停留时间(默认10秒)
enable_fuzz = False # 是否使用fuzz模式枚举域名 enable_fuzz = False # 是否使用fuzz模式枚举域名
fuzz_place = None # 指定爆破的位置 指定的位置用`@`表示 示例:www.@.example.com fuzz_place = None # 指定爆破的位置 指定的位置用`*`表示 示例:www.*.example.com
fuzz_rule = None # fuzz域名的正则 示例:'[a-z][0-9]' 表示第一位是字母 第二位是数字 fuzz_rule = None # fuzz域名的正则 示例:'[a-z][0-9]' 表示第一位是字母 第二位是数字
brute_ip_blacklist = {'0.0.0.0', '0.0.0.1'} # IP黑名单 子域解析到IP黑名单则标记为非法子域 brute_ip_blacklist = {'0.0.0.0', '0.0.0.1'} # IP黑名单 子域解析到IP黑名单则标记为非法子域
ip_appear_maximum = 100 # 多个子域解析到同一IP次数超过100次则标记为非法(泛解析)子域 ip_appear_maximum = 100 # 多个子域解析到同一IP次数超过100次则标记为非法(泛解析)子域
+1 -1
View File
@@ -40,7 +40,7 @@ DESCRIPTION
Note: Note:
--port small/medium/large See details in ./config/setting.py(default small) --port small/medium/large See details in ./config/setting.py(default small)
--format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (result format) --format csv/json (result format)
--path Result path (default None, automatically generated) --path Result path (default None, automatically generated)
FLAGS FLAGS
+1 -1
View File
@@ -39,7 +39,7 @@ OneForAll命令行界面基于[Fire](https://github.com/google/python-fire/)实
Note: Note:
--port small/medium/large 详见./config/setting.py(默认small) --port small/medium/large 详见./config/setting.py(默认small)
--format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (结果格式,默认CSV) --format csv/json (结果格式,默认CSV)
--path 结果路径(默认None,自动生成) --path 结果路径(默认None,自动生成)
FLAGS FLAGS
+1 -1
View File
@@ -68,7 +68,7 @@ class OneForAll(object):
Note: Note:
--port small/medium/large See details in ./config/setting.py(default small) --port small/medium/large See details in ./config/setting.py(default small)
--format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (result format) --format csv/json (result format)
--path Result path (default None, automatically generated) --path Result path (default None, automatically generated)
:param str target: One domain (target or targets must be provided) :param str target: One domain (target or targets must be provided)