您的位置:首页 > 其它

常见漏洞第三方扫描器

2015-09-04 00:40 344 查看
#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf_8 -*-
#Date: 2015/9/3
#Create By WinterSun
import requests
import simplejson
import getopt,sys
from threading import Thread

############################################################
##################解决UnicodeEncodeError####################
reload(sys)
sys.setdefaultencoding( "utf-8" )
############################################################

poc = ['&poc=iis_ms15034','&poc=9857','&poc=1333','&poc=1228','&poc=0008','&poc=1147','&poc=956','&poc=971']
url_list=[]
thread_num=1
hostfile_path = ''
outputfile_path ='result.txt'

def scan(u,d):
h = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"}
r = requests.post(url=u,data=d,headers=h)
try:
r_data= simplejson.loads(r.content)
print r_data['msg']
return r_data['msg'] +'\n'
except:
return ''

def singel_thread(start,end):
result = ''
for p in poc:
for u in range(start,end):
result = result +url_list[u]+':'+ scan('http://www.scanv.com/vul-check-process/','url='+url_list[u]+'&poc='+str(p))
with open(outputfile_path,'a') as f:
f.write(result)

def load_host(file_path):
global url_list
global hostfile_path
hostfile_path = file_path
try:
with open(hostfile_path,'r') as f:
url = f.readline()
while(url):
url_list.append(url)
url = f.readline()
except:
print '文件不存在,请确认文件路径无误'

def usage():
print '----------------------------------------------------------'
print '-l [hostfile_path]\t\t域名文件路径'
print '-t [thread_num]\t\t\t线程数目, 默认为1'
print '-o [outputfile_path]\t\t输出文件路径'
print '----------------------------------------------------------'
if __name__== '__main__':
opts,args = getopt.getopt(sys.argv[1:],'l:t:o:h')
try:
for opt,value in opts:
if(opt == '-l'):
load_host(value)
elif(opt == '-t'):
thread_num = value
elif(opt == '-o'):
outputfile_path = value
elif(opt == '-h'):
usage()
sys.exit()
except:
usage()
sys.exit()
if hostfile_path == '':
print '未指定域名文件路径!'
sys.exit()
url_num = len(url_list)
group_num = url_num/thread_num
for i in range(0,thread_num):
Thread(target=singel_thread,args=(i*group_num,i*group_num+group_num)).start()
Thread(target=singel_thread,args=(thread_num*group_num,url_num)).start()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: