Exemple #1
0
def save_ipscan_domaindb(domain):
    index = pa_domain.find_one({"domain": domain})
    if index:
        pa_domain.update_one({"domain": domain},
                             {"$set": {
                                 "task_ipscan_process": 1
                             }})
Exemple #2
0
def scan_ip():
    domain = request.args.get("domain")
    #在数据库搜索该domain的索引
    domain_index = pa_domain.find_one({"domain": domain})

    if domain_index:
        # 声明ip_list
        ip_list = []
        #获取整个domain所对应的ip
        for item in domain_index['subdomain']:
            for ip_s in item['ip']:
                ip_list.append(ip_s)

        #对ip_list去重
        ip_list = list(set(ip_list))

        #调用scan_ip 任务 传入主域名和对应的ip列表
        r = scan_ip_task.delay(domain, ip_list)
        # taskid入库
        insert_taskid_db({
            "task_id":
            r.task_id,
            "add_time":
            get_current_time(),
            "task_type":
            "ip_scan",
            "ip_list":
            ip_list,
            "task_info":
            "对{0}域名下的{1}等{2}个ip进行端口扫描".format(domain, ip_list[0], len(ip_list))
        })

        return {"code": 200, "msg": "添加扫描任务成功"}

    return {"code": 201, "msg": "未找到该域名所对应ip"}
Exemple #3
0
def adddomain():
    domain = request.args.get("domain")
    #如果域名已经添加过,就不需要添加了
    if (pa_domain.find_one({"domain": domain})):
        return {"code": 201, "msg": "domain have added"}
    #添加域名
    pa_domain.insert_one({"domain": domain})

    #调用Cerely后台 进行子域名批量获取
    #获取任务id
    get_sub_domain_task.delay(domain)

    result = {"code": 200, "msg": "add success"}
    return result
Exemple #4
0
def scan_ip():
    domain = request.args.get("domain")
    #在数据库搜索该domain的索引
    domain_index = pa_domain.find_one({"domain": domain})

    if domain_index:
        # 声明ip_list
        ip_list = []
        #获取整个domain所对应的ip
        for item in domain_index['subdomain']:
            for ip_s in item['ip']:
                ip_list.append(ip_s)
        #调用scan_ip 任务
        scan_ip_task.delay(ip_list)
        return {"code": 200, "msg": "添加扫描任务成功"}

    return {"code": 201, "msg": "未找到该域名所对应ip"}
Exemple #5
0
def plggins_scan_by_maindomain():
    if request.method == "POST":
        #获取POST过来的数据
        json_data = request.get_json()
        plugins_id_list = json_data['plugins_id_list']
        domain = json_data['domain']
        #声明二级域名的列表

        subdomain_list = []
        #通过domain获取所有的该domain的二级域名
        index = pa_domain.find_one({"domain": domain})
        if index:
            subdomain = index['subdomain']
            for sub in subdomain:
                subdomain_list.append(sub["sub_domain"])
        #没有在数据库中找到该主域名
        else:
            return {
                "code": 202,
                "msg": "did not find domain {0}".format(domain)
            }

        if len(subdomain_list) > 0:
            # 调用celery任务,并且获取任务id
            r = check_plugins_task.delay(plugins_id_list, subdomain_list)
            #记录任务id
            insert_taskid_db({
                "task_id":
                r.task_id,
                "add_time":
                get_current_time(),
                "task_type":
                "pluginscan",
                "plugin_list":
                plugins_id_list,
                "domain_list":
                subdomain_list,
                "task_info":
                "对{0}域名下的{1}个子域名进行插件扫描,插件id为{2}等{3}个".format(
                    domain, len(subdomain_list), plugins_id_list[0],
                    len(plugins_id_list))
            })

        return {"code": 200, "msg": "plugin scan task success"}
    return {"code": 201, "msg": "POST method need"}