web安全之自己写一个扫描器
web安全之自己写一个扫描器
自己来写一个简单的目录扫描器,了解扫描器的运转机制和原理,因为python写脚本比较容易所以用python写一个网站目录扫描器。
第一步:我们需要导入所需要的库
1 import threading 2 import argparse 3 import requests 4 import linecache
第二步:定义一些循环变量和字典,方便多进程使用
number_c=0 dir = open("dicc.txt", "r", encoding="UTF-8") len = len(dir.readlines()) print("二十个线程--开始运行......")
第三步:编写class,导入网页url和线程的
1 class dirscan: 2 def __init__(self,url): 3 self.url = url
第四步:请求,返回状态吗为200的打印出来
1 def run(self): 2 global number_c 3 global len 4 while number_c<len: 5 number_c += 1 6 i = linecache.getline(r'dicc.txt',number_c) 7 self.lurl = self.url+i 8 html_result = requests.get(self.lurl) 9 if (html_result.status_code == 200): 10 print("存在",self.lurl)
第五步:使用命令行获取网站url,并开始多线程扫描
1 if __name__ == '__main__': 2 parser = argparse.ArgumentParser() 3 parser.add_argument('url') # add_argument()指定程序可以接受的命令行选项 4 args = parser.parse_args() # parse_args()从指定的选项中返回一些数据 5 vehicles = [] 6 for num in range(20): # 设置线程 7 scan = dirscan(args.url) 8 vehicle = threading.Thread(target=scan.run,) # 新建线程 9 vehicles.append(vehicle) 10 for vehicle in vehicles: 11 vehicle.start() # 分别启动线程 12 for vehicle in vehicles: 13 vehicle.join() # 分别检查结束线程 14 print("运行结束")
成品展示
第一次写扫描器,技术很菜,还请师傅们多多指教