声明:本脚本仅用于学习交流,请勿用于非法途径,造成的任何后果与本人无关
首先,需要安装requests,threadpool这两个库,至于这两个库的使用可以自行百度
找到一个需要扫描的站点,这里我以我自己的博客网站为例
找到一个可用的字典,因为我的网站是php写的,所以我的字典是php的,
字典参考:https://github.com/DictionaryHouse/Dirpath_List
先看下执行的结果,
注意:线程太大可能网站会响应不过来
程序的原理:
调用目录的字典放在lists里面,然后在对lists里面的值每个访问,如果响应码等于500、301、301、403则表示域名存在,这里只是简单的测试一下。
代码如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- ''' 多线程目录扫描器 作者:木尤 声明:本脚本仅用于学习交流,请勿用于非法途径,造成的任何后果与本人无关 要点:需要安装requests,threadpool这俩个库 ''' import threadpool,requests #响应码 code=[200,301,302,403,503] #字典列表 url = 'https://www.xy586.top/' #url.txt为字典存放文件 ff=open('url.txt','w+') lists=[] #将字典读取到lists def zidian(): f=open('php.txt','r') for d in f: dir=d.strip() lists.append(dir) def dirscan(dir): try: res=requests.get(url+dir,timeout=3) if res.status_code in code: #将扫描完的路径保存到文件,但是必须等程序执行完才会保存 ff.write(dir) print(str(res.status_code)+": "+url+dir) except: pass zidian() #每次从字典取10个值来执行 pool=threadpool.ThreadPool(10) reqs=threadpool.makeRequests(dirscan,lists) [pool.putRequest(req) for req in reqs] pool.wait() ff.close()
来源:freebuf.com 2021-01-04 13:17:03 by: muyou8
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册