├── AWxray.py ├── README.md ├── aipang1.py ├── awvs.py ├── awvsapi.py └── awvsxray.py /AWxray.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import hashlib 3 | import json 4 | import argparse 5 | 6 | username = 'admin@admin.com' #修改你的账号 7 | password = 'aascom@123' #修改你的密码 8 | awvs_url = 'https://localhost:3443/'#路径 9 | 10 | class Awvs(): 11 | awvs = '' 12 | headers = { 13 | 'Content-Type': 'application/json;charset=UTF-8', 14 | } 15 | def __init__(self, awvs_url, username, password): 16 | self.awvs_url = awvs_url 17 | password = hashlib.sha256(password.encode()).hexdigest() 18 | info = { 19 | "email": username, 20 | "password": password, 21 | "remember_me": "false", 22 | "logout_previous":"true" 23 | } 24 | info = json.dumps(info) 25 | requests.packages.urllib3.disable_warnings() 26 | r = requests.session() 27 | text = r.post(url = awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers) 28 | print(text.status_code) 29 | try: 30 | X_Auth = r.post(self.awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers).headers['X-Auth'] 31 | except: 32 | exit('awvs Login failed') 33 | self.headers['X-Auth'] = X_Auth 34 | self.awvs = r 35 | 36 | def addTarget(self,target_url): 37 | info = { 38 | "address": target_url, 39 | "description": '', 40 | 'criticality':"10" 41 | } 42 | info = json.dumps(info) 43 | ret = self.awvs.post(self.awvs_url + 'api/v1/targets', data=info, verify=False, headers=self.headers).text 44 | ret = json.loads(ret) 45 | passs = 'pass' 46 | if len(ret) > 3: 47 | self.awvs.delete(self.awvs_url + 'api/v1/targets/' + ret['target_id'] +'/configuration/client_certificate', verify=False, headers=self.headers) 48 | 49 | info1 = {"description":"","criticality":10} 50 | info1 = json.dumps(info1) 51 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration', data=info1,verify=False, headers=self.headers) 52 | 53 | info2 = {"default_scanning_profile_id":"11111111-1111-1111-1111-111111111117","scan_speed":"moderate","user_agent":"Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html)","proxy":{"enabled":True,"protocol":"http","address":"127.0.0.1","port":7777}} #修改扫描速度'scan_speed'为sequential|slow|moderate|fast即可,默认为fast 54 | info2 = json.dumps(info2) 55 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration', data=info2, verify=False, headers=self.headers) 56 | 57 | self.awvs.get(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration',verify=False, headers=self.headers) 58 | return ret['target_id'] 59 | 60 | else: 61 | return passs 62 | 63 | def addList(self, target_url): 64 | info = { 65 | "address": target_url, 66 | "description": '', 67 | 'criticality': "10" 68 | } 69 | info = json.dumps(info) 70 | ret = self.awvs.post(self.awvs_url + 'api/v1/targets', data=info, verify=False, headers=self.headers).text 71 | ret = json.loads(ret) 72 | passs = 'pass' 73 | if len(ret) > 3: 74 | return ret['target_id'] 75 | else: 76 | return passs 77 | 78 | def scanTarget(self, target_id): 79 | info = '{"target_id":"xxxxxxxxxxxx","profile_id":"11111111-1111-1111-1111-111111111117","schedule":{"disable":false,"start_date":null,"time_sensitive":false},"ui_session_id":"81ae275a0a97d1a09880801a533a0ff1"}' 80 | info = info.replace('xxxxxxxxxxxx', target_id) 81 | self.awvs.post(self.awvs_url+'/api/v1/scans',data=info, verify=False, headers=self.headers).text 82 | 83 | 84 | def getScanList(self): 85 | scan_list= self.awvs.get(self.awvs_url + "/api/v1/scans?l=100", verify=False, headers=self.headers).text 86 | scan_list = json.loads(scan_list) 87 | scan_lists = [] 88 | for i in scan_list['scans']: 89 | scan_lists.append(i['scan_id']) 90 | return scan_lists 91 | 92 | def getTargetList(self): 93 | target_list = self.awvs.get(self.awvs_url + "/api/v1/targets?l=100", verify=False, headers=self.headers).text 94 | target_list = json.loads(target_list) 95 | target_lists = [] 96 | for i in target_list['targets']: 97 | target_lists.append(i['target_id']) 98 | return target_lists 99 | 100 | 101 | def delTarget(self, target_id): 102 | self.awvs.delete(self.awvs_url + "/api/v1/targets/" + target_id, verify=False, headers=self.headers) 103 | 104 | 105 | def delScan(self, scan_id): 106 | self.awvs.delete(self.awvs_url + "/api/v1/scans/" + scan_id, verify=False, headers=self.headers) 107 | 108 | if __name__ == "__main__": 109 | awvs = Awvs(awvs_url, username, password) 110 | parser = argparse.ArgumentParser() 111 | parser.add_argument('-u',help='scan a url') 112 | parser.add_argument('-f', help='scan a file list') 113 | parser.add_argument('-x',help='scan a file list coordination xray') 114 | parser.add_argument('-d',action='store_true',help='delete all target and scan') 115 | args = parser.parse_args() 116 | if (args.u): 117 | target_id = awvs.addTarget(args.u) 118 | awvs.scanTarget(target_id) 119 | print('starting scan '+args.u) 120 | if (args.x): 121 | with open(args.x) as f: 122 | for i in f: 123 | url = i.replace("\n", '') 124 | url = url.replace("\r", '') 125 | target_id = awvs.addTarget(url) 126 | if len(target_id) > 10: 127 | awvs.scanTarget(target_id) 128 | print('starting scan ' + url) 129 | else: 130 | continue 131 | if (args.f): 132 | with open(args.f) as f: 133 | for i in f: 134 | url = i.replace("\n", '') 135 | url = url.replace("\r", '') 136 | target_id = awvs.addList(url) 137 | if len(target_id) > 10: 138 | awvs.scanTarget(target_id) 139 | print('starting scan ' + url) 140 | else: 141 | continue 142 | if (args.d): 143 | scan_list = awvs.getScanList() 144 | target_list = awvs.getTargetList() 145 | for i in scan_list: 146 | awvs.delScan(i) 147 | for i in target_list: 148 | awvs.delTarget(i) 149 | print('all delete success') -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #PythonTools 2 | 3 | aipang1.py-----------------爱站爬取目标旁站url 4 | 5 | awvsxray.py----------------awvs批量添加目标并联动xray(awvs和xray同时扫描) 6 | 7 | 联动xray使用方法:python3 awvsxray.py -x ./目标.txt 8 | 不联动xray的只批量添加到awvs扫描: python3 awvsxray.py -f ./目标.txt 9 | 10 | AWxray.py-----------------只使用awvs爬虫联动到xray扫描 11 | 12 | 使用方法:python3 awvsxray.py -x ./目标.txt 13 | 14 | awvs.py 最新版本acunetix_14.2.210503151 批量添加目标(使用方法同上) 15 | 16 | 使用方法:python3 awvsapi.py -f ./目标.txt (批量添加,注意修改里面的路径和api) 17 | -------------------------------------------------------------------------------- /aipang1.py: -------------------------------------------------------------------------------- 1 | import requests,re 2 | 3 | def aizhan(ur): 4 | headers = { 5 | 'User-Agent': 'Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html)' 6 | } 7 | # pr = { 8 | # 'http' : 'http://127.0.0.1:10809' 9 | # } 10 | f = open('./ok.txt','w',encoding='utf-8') 11 | # s = 0 12 | try: 13 | for i in range(1,60): 14 | url = 'https://dns.aizhan.com/' + ur + '/{0}/'.format(str(i)) 15 | print(url) 16 | res = requests.get(url=url,headers=headers) 17 | res.encoding = 'utf-8' 18 | html = res.text 19 | if '格式错误!' in html: 20 | print('格式错误! 无此url!') 21 | break 22 | elif '根据相关规定,结果未予显示!' in html: 23 | print('根据相关规定,结果未予显示!') 24 | continue 25 | elif '暂无域名解析到该IP' in html: 26 | print('采集完成!') 27 | break 28 | 29 | pang = re.findall('rel="nofollow" target="_blank">(.*)',html) 30 | for urls in pang: 31 | if '-' in urls: 32 | continue 33 | else: 34 | f.write(urls + '\n') 35 | # s += 1 36 | # print(s) 37 | 38 | 39 | except Exception as e: 40 | print(e) 41 | 42 | finally: 43 | f.close() 44 | 45 | if __name__ == '__main__': 46 | ur = input('请输入要查询旁站的url:') 47 | aizhan(ur) 48 | -------------------------------------------------------------------------------- /awvs.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import hashlib 3 | import json 4 | import argparse 5 | 6 | username = 'admin@admin.com' #修改你的账号 7 | password = 'aascom@123' #修改你的密码 8 | awvs_url = 'https://localhost:3443/'#路径 9 | 10 | class Awvs(): 11 | awvs = '' 12 | headers = { 13 | 'Content-Type': 'application/json;charset=UTF-8', 14 | } 15 | def __init__(self, awvs_url, username, password): 16 | self.awvs_url = awvs_url 17 | password = hashlib.sha256(password.encode()).hexdigest() 18 | info = { 19 | "email": username, 20 | "password": password, 21 | "remember_me": "false", 22 | "logout_previous":"true" 23 | } 24 | info = json.dumps(info) 25 | requests.packages.urllib3.disable_warnings() 26 | r = requests.session() 27 | text = r.post(url = awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers) 28 | print(text.status_code) 29 | try: 30 | X_Auth = r.post(self.awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers).headers['X-Auth'] 31 | except: 32 | exit('awvs Login failed') 33 | self.headers['X-Auth'] = X_Auth 34 | self.awvs = r 35 | 36 | def addTarget(self,target_url): 37 | info = {"targets":[{"address": target_url,"description":""}],"groups":[]} 38 | info = json.dumps(info) 39 | ret = self.awvs.post(self.awvs_url + '/api/v1/targets/add', data=info, verify=False, headers=self.headers).text 40 | ret = json.loads(ret) 41 | target_id = ret['targets'][0]['target_id'] 42 | 43 | self.awvs.delete(self.awvs_url + 'api/v1/targets/' + target_id +'/configuration/client_certificate', verify=False, headers=self.headers) 44 | 45 | info1 = { 46 | "description":"", 47 | "criticality":10 48 | } 49 | info1 = json.dumps(info1) 50 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + target_id, data=info1,verify=False, headers=self.headers) 51 | 52 | info2 = {"default_scanning_profile_id":"11111111-1111-1111-1111-111111111111","user_agent":"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)","proxy":{"enabled":True,"protocol":"http","address":"127.0.0.1","port":10809}} #,"proxy":{"enabled":True,"protocol":"http","address":"127.0.0.1","port":10809} 53 | info2 = json.dumps(info2) 54 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + target_id + '/configuration', data=info2, verify=False, headers=self.headers) 55 | 56 | return target_id 57 | 58 | def addList(self, target_url): 59 | info = {"targets":[{"address": target_url,"description":""}],"groups":[]} 60 | info = json.dumps(info) 61 | ret = self.awvs.post(self.awvs_url + '/api/v1/targets/add', data=info, verify=False, headers=self.headers).text 62 | ret = json.loads(ret) 63 | target_id = ret['targets'][0]['target_id'] 64 | return target_id 65 | 66 | def scanTarget(self, target_id): 67 | false=False 68 | null=None 69 | scaninfo = {"profile_id":"11111111-1111-1111-1111-111111111111","ui_session_id":"0190f88f0c88f3bc6063a7fc657f52f7","incremental":false,"schedule":{"disable":false,"start_date":null,"time_sensitive":false},"target_id": target_id} 70 | scaninfo = json.dumps(scaninfo) 71 | self.awvs.post(self.awvs_url+'/api/v1/scans',data=scaninfo, verify=False, headers=self.headers) 72 | 73 | 74 | def getScanList(self): 75 | scan_list= self.awvs.get(self.awvs_url + "/api/v1/scans?l=100", verify=False, headers=self.headers).text 76 | scan_list = json.loads(scan_list) 77 | scan_lists = [] 78 | for i in scan_list['scans']: 79 | scan_lists.append(i['scan_id']) 80 | return scan_lists 81 | 82 | def getTargetList(self): 83 | target_list = self.awvs.get(self.awvs_url + "/api/v1/targets?l=100", verify=False, headers=self.headers).text 84 | target_list = json.loads(target_list) 85 | target_lists = [] 86 | for i in target_list['targets']: 87 | target_lists.append(i['target_id']) 88 | return target_lists 89 | 90 | 91 | def delTarget(self, target_id): 92 | self.awvs.delete(self.awvs_url + "/api/v1/targets/" + target_id, verify=False, headers=self.headers) 93 | 94 | 95 | def delScan(self, scan_id): 96 | self.awvs.delete(self.awvs_url + "/api/v1/scans/" + scan_id, verify=False, headers=self.headers) 97 | 98 | if __name__ == "__main__": 99 | awvs = Awvs(awvs_url, username, password) 100 | parser = argparse.ArgumentParser() 101 | parser.add_argument('-f', help='scan a file list') 102 | parser.add_argument('-x',help='scan a file list coordination xray') 103 | parser.add_argument('-d',action='store_true',help='delete all target and scan') 104 | args = parser.parse_args() 105 | 106 | if (args.x): 107 | with open(args.x) as f: 108 | for i in f: 109 | url = i.replace("\n", '') 110 | url = url.replace("\r", '') 111 | target_id = awvs.addTarget(url) 112 | awvs.scanTarget(target_id) 113 | print('starting scan ' + url) 114 | 115 | if (args.f): 116 | with open(args.f) as f: 117 | for i in f: 118 | url = i.replace("\n", '') 119 | url = url.replace("\r", '') 120 | target_id = awvs.addList(url) 121 | if len(target_id) > 10: 122 | awvs.scanTarget(target_id) 123 | print('starting scan ' + url) 124 | else: 125 | continue 126 | if (args.d): 127 | scan_list = awvs.getScanList() 128 | target_list = awvs.getTargetList() 129 | for i in scan_list: 130 | awvs.delScan(i) 131 | for i in target_list: 132 | awvs.delTarget(i) 133 | print('all delete success') -------------------------------------------------------------------------------- /awvsapi.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from requests.packages.urllib3.exceptions import InsecureRequestWarning 3 | requests.packages.urllib3.disable_warnings(InsecureRequestWarning) 4 | import json 5 | import argparse 6 | 7 | ''' 8 | Full Scan 11111111-1111-1111-1111-111111111111 完全扫描 9 | High Risk Vulnerabilities 11111111-1111-1111-1111-111111111112 高风险漏洞 10 | Cross-site Scripting Vulnerabilities 11111111-1111-1111-1111-111111111116 XSS漏洞 11 | SQL Injection Vulnerabilities 11111111-1111-1111-1111-111111111113 SQL注入漏洞 12 | Weak Passwords 11111111-1111-1111-1111-111111111115 弱口令检测 13 | Crawl Only 11111111-1111-1111-1111-111111111117 Crawl Only 14 | Malware Scan 11111111-1111-1111-1111-111111111120 恶意软件扫描 15 | ''' 16 | 17 | Awvs_url = 'https://127.0.0.1:3443/' #awvs的访问url 18 | Awvs_api = '1986ad8c0a5b3df4d7028d5f3c06e936cbecb230db07347fa933cd842d573d20c' #awvs中的api 19 | headers = { 20 | 'X-Auth': Awvs_api, 21 | 'Content-type': 'application/json' 22 | } 23 | 24 | def addTarget(scan_url): 25 | info_targets = {"address": scan_url, "description": scan_url, "criticality": "10"} 26 | r = requests.post(url=Awvs_url + 'api/v1/targets', headers=headers, data=json.dumps(info_targets), verify=False) 27 | target_id = json.loads(r.content) # 取出任务id 28 | return target_id['target_id'] 29 | 30 | def scanTarget(target_id): 31 | info_scans = {"target_id": target_id, "profile_id": "11111111-1111-1111-1111-111111111111", 32 | "schedule": {"disable": False, "start_date": None, "time_sensitive": False}} 33 | scans_r = requests.post(Awvs_url + "/api/v1/scans", data=json.dumps(info_scans), headers=headers, timeout=30,verify=False) 34 | 35 | def linkagescan(target_id): 36 | info_patch = { 37 | "user_agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", 38 | "case_sensitive": "yes", 39 | "proxy": {"enabled": True, "protocol": "http", "address": "10.71.40.94", "port": 7777, "username": "admin", "password": "admin"}} 40 | scans_r = requests.patch(Awvs_url + "/api/v1/targets/" + target_id['target_id'] + "/configuration",data=json.dumps(info_patch), headers=headers, timeout=30 * 4, verify=False) 41 | 42 | 43 | if __name__ == '__main__': 44 | parser = argparse.ArgumentParser() 45 | parser.add_argument('-u', help='scan a url') 46 | parser.add_argument('-f', help='scan a file list') 47 | parser.add_argument('-x', help='scan a file list coordination xray') 48 | args = parser.parse_args() 49 | if (args.u): 50 | target_id = addTarget(args.u) 51 | scanTarget(target_id) 52 | print('成功添加目标:' + args.u) 53 | if (args.f): 54 | with open(args.f) as f: 55 | for i in f: 56 | url = i.replace("\n", '') 57 | url = url.replace("\r", '') 58 | target_id = addTarget(url) 59 | scanTarget(target_id) 60 | print('成功添加目标:' + url) 61 | if (args.x): 62 | with open(args.x) as f: 63 | for i in f: 64 | url = i.replace("\n", '') 65 | url = url.replace("\r", '') 66 | target_id = addTarget(url) 67 | linkagescan(target_id) 68 | scanTarget(target_id) 69 | print('成功添加目标:' + url) 70 | 71 | -------------------------------------------------------------------------------- /awvsxray.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import hashlib 3 | import json 4 | import argparse 5 | 6 | username = 'admxxxxxx' #修改你的账号 7 | password = 'xxxxxxxxx' #修改你的密码 8 | awvs_url = 'https://localhost:3443/'#路径 9 | 10 | class Awvs(): 11 | awvs = '' 12 | headers = { 13 | 'Content-Type': 'application/json;charset=UTF-8', 14 | } 15 | def __init__(self, awvs_url, username, password): 16 | self.awvs_url = awvs_url 17 | password = hashlib.sha256(password.encode()).hexdigest() 18 | info = { 19 | "email": username, 20 | "password": password, 21 | "remember_me": "false", 22 | "logout_previous":"true" 23 | } 24 | info = json.dumps(info) 25 | requests.packages.urllib3.disable_warnings() 26 | r = requests.session() 27 | text = r.post(url = awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers) 28 | print(text.status_code) 29 | try: 30 | X_Auth = r.post(self.awvs_url + 'api/v1/me/login', data=info, verify=False, headers=self.headers).headers['X-Auth'] 31 | except: 32 | exit('awvs Login failed') 33 | self.headers['X-Auth'] = X_Auth 34 | self.awvs = r 35 | 36 | def addTarget(self,target_url): 37 | info = { 38 | "address": target_url, 39 | "description": '', 40 | 'criticality':"10" 41 | } 42 | info = json.dumps(info) 43 | ret = self.awvs.post(self.awvs_url + 'api/v1/targets', data=info, verify=False, headers=self.headers).text 44 | ret = json.loads(ret) 45 | passs = 'pass' 46 | if len(ret) > 3: 47 | self.awvs.delete(self.awvs_url + 'api/v1/targets/' + ret['target_id'] +'/configuration/client_certificate', verify=False, headers=self.headers) 48 | 49 | info1 = {"description":"","criticality":10} 50 | info1 = json.dumps(info1) 51 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration', data=info1,verify=False, headers=self.headers) 52 | 53 | info2 = {"user_agent":"Mozilla/5.0 (compatible; Baiduspider/2.0; http://www.baidu.com/search/spider.html)","proxy":{"enabled":True,"protocol":"http","address":"127.0.0.1","port":7777}} 54 | info2 = json.dumps(info2) 55 | self.awvs.patch(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration', data=info2, verify=False, headers=self.headers) 56 | 57 | self.awvs.get(self.awvs_url + 'api/v1/targets/' + ret['target_id'] + '/configuration',verify=False, headers=self.headers) 58 | return ret['target_id'] 59 | 60 | else: 61 | return passs 62 | 63 | def addList(self, target_url): 64 | info = { 65 | "address": target_url, 66 | "description": '', 67 | 'criticality': "10" 68 | } 69 | info = json.dumps(info) 70 | ret = self.awvs.post(self.awvs_url + 'api/v1/targets', data=info, verify=False, headers=self.headers).text 71 | ret = json.loads(ret) 72 | passs = 'pass' 73 | if len(ret) > 3: 74 | return ret['target_id'] 75 | else: 76 | return passs 77 | 78 | def scanTarget(self, target_id): 79 | info = '{"target_id":"xxxxxxxxxxxx","profile_id":"11111111-1111-1111-1111-111111111111","schedule":{"disable":false,"start_date":null,"time_sensitive":false},"ui_session_id":"81ae275a0a97d1a09880801a533a0ff1"}' 80 | info = info.replace('xxxxxxxxxxxx', target_id) 81 | self.awvs.post(self.awvs_url+'/api/v1/scans',data=info, verify=False, headers=self.headers).text 82 | 83 | 84 | def getScanList(self): 85 | scan_list= self.awvs.get(self.awvs_url + "/api/v1/scans?l=100", verify=False, headers=self.headers).text 86 | scan_list = json.loads(scan_list) 87 | scan_lists = [] 88 | for i in scan_list['scans']: 89 | scan_lists.append(i['scan_id']) 90 | return scan_lists 91 | 92 | def getTargetList(self): 93 | target_list = self.awvs.get(self.awvs_url + "/api/v1/targets?l=100", verify=False, headers=self.headers).text 94 | target_list = json.loads(target_list) 95 | target_lists = [] 96 | for i in target_list['targets']: 97 | target_lists.append(i['target_id']) 98 | return target_lists 99 | 100 | 101 | def delTarget(self, target_id): 102 | self.awvs.delete(self.awvs_url + "/api/v1/targets/" + target_id, verify=False, headers=self.headers) 103 | 104 | 105 | def delScan(self, scan_id): 106 | self.awvs.delete(self.awvs_url + "/api/v1/scans/" + scan_id, verify=False, headers=self.headers) 107 | 108 | if __name__ == "__main__": 109 | awvs = Awvs(awvs_url, username, password) 110 | parser = argparse.ArgumentParser() 111 | parser.add_argument('-u',help='scan a url') 112 | parser.add_argument('-f', help='scan a file list') 113 | parser.add_argument('-x',help='scan a file list coordination xray') 114 | parser.add_argument('-d',action='store_true',help='delete all target and scan') 115 | args = parser.parse_args() 116 | if (args.u): 117 | target_id = awvs.addTarget(args.u) 118 | awvs.scanTarget(target_id) 119 | print('starting scan '+args.u) 120 | if (args.x): 121 | with open(args.x) as f: 122 | for i in f: 123 | url = i.replace("\n", '') 124 | url = url.replace("\r", '') 125 | target_id = awvs.addTarget(url) 126 | if len(target_id) > 10: 127 | awvs.scanTarget(target_id) 128 | print('starting scan ' + url) 129 | else: 130 | continue 131 | if (args.f): 132 | with open(args.f) as f: 133 | for i in f: 134 | url = i.replace("\n", '') 135 | url = url.replace("\r", '') 136 | target_id = awvs.addList(url) 137 | if len(target_id) > 10: 138 | awvs.scanTarget(target_id) 139 | print('starting scan ' + url) 140 | else: 141 | continue 142 | if (args.d): 143 | scan_list = awvs.getScanList() 144 | target_list = awvs.getTargetList() 145 | for i in scan_list: 146 | awvs.delScan(i) 147 | for i in target_list: 148 | awvs.delTarget(i) 149 | print('all delete success') --------------------------------------------------------------------------------