예제 #1
0
파일: domain.py 프로젝트: zx273983653/ARL
    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)
예제 #2
0
    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)
예제 #3
0
파일: domain.py 프로젝트: zx273983653/ARL
    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获取的结果
예제 #4
0
    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
예제 #5
0
파일: npoc.py 프로젝트: zu1kbackup/ARL
    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
예제 #6
0
        "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 = []