mirror of
https://github.com/shmilylty/OneForAll.git
synced 2026-08-25 20:37:48 +08:00
Merge branch 'master' of https://github.com/shmilylty/OneForAll into master
This commit is contained in:
@@ -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
@@ -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次则标记为非法(泛解析)子域
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user