python-网站目录扫描

虽然功能不如dirsearch,御剑等工具相比,但是供学习参考还是不错的。
代码如下:

# 1.输入目标url和线程大小
# 2. 以队列的形式获取要爆破的路径
# 3. 定义路径获取函数get_path()
# 4. 利用多线程进行url目录爆破
# 5. 定义目录爆破函数get_url()

#import urllib3
import requests
import queue
import threading
import sys
import user_agent
# 3.定义路径获取函数get_path()
def get_path(url,file="D://dict/dict.txt"): # 可以自定义字典文件
    path_queue = queue.Queue()
    f = open(file,"r")
    for i in f.readlines():
        path = url + i.strip()
        #print(path)
        path_queue.put(path)
    f.close()
    return path_queue

# 5. 定义目录爆破函数get_url()
def get_url(path_queue):
        while not path_queue.empty():
            try:
                headers = {  # 改变headers头,使该程序更像客户端
                    "User-Agent": "" + user_agent.generate_user_agent() + ""
                }
                url = path_queue.get()
                response = requests.get(url,headers=headers)
                if response.status_code == 200:
                    print("[%d] = >%s" %(response.status_code,url))
            except:
                pass
        else:
            sys.exit()
def main(url,threadNum):
    # 2. 以队列的形式获取要爆破的路径
    path_queue = get_path(url)

    # 4. 利用多线程进行url目录爆破
    threads = []
    for i in range(threadNum):
        t = threading.Thread(target=get_url,args=(path_queue,))
        threads.append(t)
        t.start()
    for t in threads:
        t.join()

if __name__=="__main__":
    # 1.输入目标url和线程大小
    url = input("please input url:")
    threadNum = int(input("please input threads:"))
    main(url,threadNum)

结果如下:
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值