多线程目录扫描脚本

该脚本是一个使用Python实现的多线程目录扫描工具,它结合argparse模块处理命令行参数,利用requests库发送HTTP请求,通过线程池进行并发扫描。工具从指定字典文件读取目录路径,对目标URL发起请求,检查并打印出特定状态码的响应。
摘要由CSDN通过智能技术生成
import argparse
import requests
import textwrap
import threading
import queue
import colorama

colorama.init()
class myThread(threading.Thread):
    def __init__(self, res, url, thr):
        threading.Thread.__init__(self)
        self.res = res
        self.url = url
        self.thr = thr


    def run(self):
        while not q.empty():
            dists = q.get()
            tart = self.url + dists.strip()
            try:
                qwer = requests.get(tart, verify=False)
                if qwer.status_code == int(self.res):
                    print(colorama.Fore.RED + '%s----------------%s' % (tart, qwer.status_code) + colorama.Style.RESET_ALL)
            except Exception as e:
                break


def dict(dic, thr):
    for dist in open(dic, 'r', encoding='utf-8'):
        dist = dist.replace('\n', '')
        q.put(dist)
    for i in range(thr):
        t = myThread(res=args.res, url=args.url, thr=args.thr)
        t.start()




if __name__ == '__main__':
    q = queue.Queue()
    parser = argparse.ArgumentParser(description="Directory Scan Tool",
                                     formatter_class=argparse.RawDescriptionHelpFormatter, epilog=textwrap.dedent(
            """Example: test.py -w D:\Desktop\DIRD1.txt -t http://www.baidu.com/ -r 404 -th 11 """))
    parser.add_argument('-w', '--dictionary', dest='dic', help='Dictionary file location')
    # parser.add_argument('-e', '--Exclude ', dest='exc', help='Exclude status codes')
    parser.add_argument('-r', '--reserve', dest='res', help='Reserved status code')
    parser.add_argument('-u', '--target', dest='url', help='specified ip')
    parser.add_argument('-t', '--threading', dest='thr', help='specified ip')
    args = parser.parse_args()
    dict(args.dic, int(args.thr))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值