def _load_dict(self): ##加载内部字典 dict = set() for x in utils.load_file(Config.altdns_dict_path): x = x.strip() if x: dict.add(x) return list(dict)
def file_leak(self): for site in self.site_list: pages = services.file_leak([site], utils.load_file(Config.FILE_LEAK_TOP_2k)) for page in pages: item = page.dump_json() item["task_id"] = self.task_id item["site"] = site utils.conn_db('fileleak').insert_one(item)
def __init__(self, base_domain, word_file=Config.DOMAIN_DICT_2W): self.base_domain = base_domain self.base_domain_scope = "." + base_domain.strip(".") self.dicts = utils.load_file(word_file) self.brute_out = [] self.resolver_map = {} self.domain_info_list = [] self.domain_cnames = [] self.brute_domain_map = {} #保存了通过massdns获取的结果
def parse_massdns_output(self): output = [] lines = utils.load_file(self.massdns_output_path) for line in lines: data = line.split(" ") if len(data) != 3: continue domain, type, record = data item = { "domain": domain.strip("."), "type": type, "record": record.strip() } output.append(item) return output
def run_poc(self, plugin_name_list, targets): self.result = [] npoc_conf.SAVE_TEXT_RESULT_FILENAME = "" random_file = os.path.join( self.tmp_dir, "npoc_result_{}.txt".format(utils.random_choices())) npoc_conf.SAVE_JSON_RESULT_FILENAME = random_file plugins = self.filter_plugin_by_name(plugin_name_list) runner = PluginRunner.PluginRunner(plugins=plugins, targets=targets, concurrency=self.concurrency) self.runner = runner runner.run() if not os.path.exists(random_file): return self.result for item in utils.load_file(random_file): self.result.append(json.loads(item)) os.unlink(random_file) return self.result
"headers": "header", "favicon_hash": "icon_hash" } human_rule_list = [] for key in rule: if key not in key_map: logger.info("{} 不在指定关键字中".format(key)) continue for rule_item in rule[key]: human_rule_list.append('{}="{}"'.format(key_map[key], rule_item)) return " || ".join(human_rule_list) web_app_rules = json.loads("\n".join(load_file(Config.web_app_rule))) def load_fingerprint(): items = list(conn_db('fingerprint').find()) for rule in web_app_rules: new_rule = dict() new_rule["name"] = rule new_rule["rule"] = web_app_rules[rule] items.append(new_rule) return items # 根据规则列表来获取应用名,单个规则字段是或的关系 def fetch_fingerprint(content, headers, title, favicon_hash, finger_list): finger_name_list = []