def run_brute(self): """运行爆破,获取进度""" target = self.site_list + list(self.npoc_service_target_set) plugin_name = self.brute_plugin_name logger.info("start run brute {}*{}".format(len(plugin_name), len(target))) run_total = len(plugin_name) * len(target) npoc_instance = npoc.NPoC(tmp_dir=Config.TMP_PATH, concurrency=10) run_thread = Thread(target=npoc_instance.run_poc, args=(plugin_name, target)) run_thread.start() while run_thread.is_alive(): time.sleep(5) status = "brute {}/{}".format(npoc_instance.runner.runner_cnt, run_total) logger.info("[{}]runner cnt {}/{}".format( self.task_id, npoc_instance.runner.runner_cnt, run_total)) self.update_task_field("status", status) result = npoc_instance.result for item in result: item["task_id"] = self.task_id item["save_date"] = utils.curr_date() utils.conn_db('vuln').insert_one(item)
def run_all_poc(self, targets): n = npoc.NPoC(tmp_dir=Config.TMP_PATH, concurrency=6) run_total = len(n.plugin_name_list) * len(targets) print("run total {}".format(run_total)) run_thread = Thread(target=n.run_all_poc, args=(targets, )) run_thread.start() while run_thread.is_alive(): time.sleep(0.6) print("runner cnt {}/{}".format(n.runner.runner_cnt, run_total)) if n.result: print(n.result) print("done")
def test_run_all_poc(self): n = npoc.NPoC(tmp_dir=Config.TMP_PATH) targets = ["https://www.baidu.com/"] ret = n.run_all_poc(targets) if ret: print(ret)
def test_load_poc(self): n = npoc.NPoC(tmp_dir=Config.TMP_PATH) plugins = n.load_all_poc() self.assertTrue(len(plugins) >= 10)