python实现简单的目录扫描工具 – 作者:muyou8

声明:本脚本仅用于学习交流,请勿用于非法途径,造成的任何后果与本人无关

首先,需要安装requests,threadpool这两个库,至于这两个库的使用可以自行百度

找到一个需要扫描的站点,这里我以我自己的博客网站为例

找到一个可用的字典,因为我的网站是php写的,所以我的字典是php的,

字典参考:https://github.com/DictionaryHouse/Dirpath_List

先看下执行的结果,

1609737166_5ff2a3ce35ab73b7b673b.png!small

注意:线程太大可能网站会响应不过来

程序的原理:

调用目录的字典放在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
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论