import requests
import json
import time
def get_data(url):
url = url.replace('\n','')
headers = {
'Content-Type':'application/json'
}
data = {
'url':url
}
return data,headers
def set_new():
result=requests.get('http://127.0.0.1:8775/task/new')
task_id = result.json()['taskid']
return task_id
def set_option(data,headers,task_id):
scan_id='http://127.0.0.1:8775/option/'+task_id+'/set'
scan_set=requests.post(scan_id,data=json.dumps(data),headers=headers)
return scan_set.content.decode('utf-8')
def start_scan(task_id,data,headers):
scan_start_url='http://127.0.0.1:8775/scan/'+task_id+'/start'
scan_start=requests.post(scan_start_url,data=json.dumps(data),headers=headers)
return scan_start.content.decode('utf-8')
def scan_status(task_id):
scan_status_url='http://127.0.0.1:8775/scan/'+task_id+'/status'
scan_status=requests.get(scan_status_url)
return scan_status.content.decode('utf-8')
def scan_data(task_id):
scan_data_url='http://127.0.0.1:8775/scan/'+task_id+'/data'
scan_data=requests.get(scan_data_url)
return scan_data.content.decode('utf-8')
def del_task(task_id):
del_url = 'http://127.0.0.1:8775/task/'+task_id+'/delete'
del_resp = requests.get(del_url)
return del_resp.content.decode('utf-8')
if __name__ == '__main__':
for url in open('url.txt'):
data, headers = get_data(url)
task_id = set_new()
if task_id:
set_s = set_option(data,headers,task_id)
if 'success' in set_s:
start_s = start_scan(task_id,data,headers)
if 'success' in start_s:
while 1:
status_s = scan_status(task_id)
if 'running' in status_s:
print('目标扫描中...')
time.sleep(3)
pass
else:
data_s = scan_data(task_id)
with open(r'scan_result.txt','a+') as f:
f.write(data_s+'\n')
f.write('====================python sqlmap scan==================\n\n')
f.close()
del_s = del_task(task_id)
if 'success' in del_s:
print('任务删除成功!')
else:
print('任务删除失败!')
break
else:
print('扫描任务启动失败!')
else:
print('任务设置失败!')
else:
print('任务创建失败!')
url.txt:
http://127.0.0.1/sqlilabs/Less-1/?id=1
http://127.0.0.1/sqlilabs/Less-2/?id=1
http://127.0.0.1/sqlilabs/Less-3/?id=1
http://127.0.0.1/sqlilabs/Less-4/?id=1