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 }})
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"}
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
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"}
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"}