iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python开发网站目录扫描器
  • 656
分享到

Python开发网站目录扫描器

扫描器目录网站 2023-01-30 23:01:03 656人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

有人问为什么要去扫描网站目录:懂的人自然懂 这个python脚本的特点: 1.基本完善 2.界面美观(只是画了个图案) 3.可选参数增加了线程数 4.User Agent细节处理 5.多线程显示进度   扫描目标:Metasploitab

有人问为什么要去扫描网站目录:懂的人自然懂

这个python脚本的特点:

1.基本完善

2.界面美观(只是画了个图案)

3.可选参数增加了线程

4.User Agent细节处理

5.多线程显示进度

 

扫描目标:Metasploitable linux

 

代码:WEBDirScanner.py:

# -*- coding:utf-8 -*-
__author__ = "Yiqing"
import sys
import threading
import random
from Queue import Queue
from optparse import OptionParser

try:
    import requests
except Exception:
    print "[!] You need to install requests module!"
    print "[!] Usage:pip install requests"
    exit()


class WebDirScan:
    """
    Web目录扫描器
    """

    def __init__(self, options):
        self.url = options.url
        self.file_name = options.file_name
        self.count = options.count

    class DirScan(threading.Thread):
        """
        多线程
        """

        def __init__(self, queue, total):
            threading.Thread.__init__(self)
            self._queue = queue
            self._total = total

        def run(self):
            while not self._queue.empty():
                url = self._queue.get()
                # 多线程显示进度
                threading.Thread(target=self.msg).start()
                try:
                    r = requests.get(url=url, headers=get_user_agent(), timeout=5)
                    if r.status_code == 200:
                        sys.stdout.write('\r' + '[+]%s\t\t\n' % url)
                        # 保存到本地文件,以html的格式
                        result = open('result.html', 'a+')
                        result.write('<a href="' + url + '" target="_blank">' + url + '</a>')
                        result.write('\r\n</br>')
                        result.close()
                except Exception:
                    pass

        def msg(self):
            """
            显示进度
            :return:None
            """
            per = 100 - float(self._queue.qsize()) / float(self._total) * 100
            percent = "%s Finished| %s All| Scan in %1.f %s" % (
                (self._total - self._queue.qsize()), self._total, per, '%')
            sys.stdout.write('\r' + '[*]' + percent)

    def start(self):
        result = open('result.html', 'w')
        result.close()
        queue = Queue()
        f = open('dict.txt', 'r')
        for i in f.readlines():
            queue.put(self.url + "/" + i.rstrip('\n'))
        total = queue.qsize()
        threads = []
        thread_count = int(self.count)
        for i in range(thread_count):
            threads.append(self.DirScan(queue, total))
        for thread in threads:
            thread.start()
        for thread in threads:
            thread.join()


def get_user_agent():
    """
    User Agent的细节处理
    :return:
    """
    user_agent_list = [
        {'User-Agent': 'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; windows NT 5.1; FDM; SV1; .net CLR 3.0.04506.30)'},
        {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; en) Opera 11.00'},
        {
            'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.2) Gecko/2008092313 ubuntu/8.04 (hardy) Firefox/3.0.2'},
        {
            'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.15) Gecko/20101027 Fedora/3.5.15-1.fc12 Firefox/3.5.15'},
        {
            'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.551.0 Safari/534.10'},
        {'User-Agent': 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.2) Gecko/2008092809 Gentoo Firefox/3.0.2'},
        {
            'User-Agent': 'Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/7.0.544.0'},
        {'User-Agent': 'Opera/9.10 (Windows NT 5.2; U; en)'},
        {
            'User-Agent': 'Mozilla/5.0 (iPhone; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko)'},
        {'User-Agent': 'Opera/9.80 (X11; U; Linux i686; en-US; rv:1.9.2.3) Presto/2.2.15 Version/10.10'},
        {
            'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5'},
        {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9b3) Gecko/2008020514 Firefox/3.0b3'},
        {
            'User-Agent': 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; fr) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16'},
        {
            'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20'},
        {
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)'},
        {'User-Agent': 'Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux x86_64; en) Opera 9.60'},
        {
            'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.366.0 Safari/533.4'},
        {'User-Agent': 'Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51'}
    ]

    return random.choice(user_agent_list)


def main():
    """
    主函数
    :return: None
    """
    print '''
     ____  _      ____                  
    |  _ \(_)_ __/ ___|  ___ __ _ _ __  
    | | | | | '__\___ \ / __/ _` | '_ \ 
    | |_| | | |   ___) | (_| (_| | | | |
    |____/|_|_|  |____/ \___\__,_|_| |_|

    Welcome to WebDirScan
    Version:1.0  Author: %s
    ''' % __author__
    parser = OptionParser('Python WebDirScanner.py -u <Target URL> -f <Dictionary file name> [-t <Thread_count>]')
    parser.add_option('-u', '--url', dest='url', type='string', help='target url for scan')
    parser.add_option('-f', '--file', dest='file_name', type='string', help='dictionary filename')
    parser.add_option('-t', '--thread', dest='count', type='int', default=10, help='scan thread count')
    (options, args) = parser.parse_args()
    if options.url and options.file_name:
        dirscan = WebDirScan(options)
        dirscan.start()
        sys.exit(1)
    else:
        parser.print_help()
        sys.exit(1)


if __name__ == '__main__':
    main()

 

 

需要一个字典文件:

我存进去了一些,一部分是确定存在的目录

dict.txt

index.PHP
login
dvwa
phpMyAdmin
dav
twiki
login.php

 

结果:得到一个HTML文件:

<a href="Http://192.168.232.129/twiki" target="_blank">http://192.168.232.129/twiki</a>

</br><a href="http://192.168.232.129/index.php" target="_blank">http://192.168.232.129/index.php</a>

</br><a href="http://192.168.232.129/phpMyAdmin" target="_blank">http://192.168.232.129/phpMyAdmin</a>

</br>

 

 

脚本的使用:

--结束END--

本文标题: Python开发网站目录扫描器

本文链接: https://www.lsjlt.com/news/180929.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python开发网站目录扫描器
    有人问为什么要去扫描网站目录:懂的人自然懂 这个Python脚本的特点: 1.基本完善 2.界面美观(只是画了个图案) 3.可选参数增加了线程数 4.User Agent细节处理 5.多线程显示进度   扫描目标:Metasploitab...
    99+
    2023-01-30
    扫描器 目录 网站
  • Python实现对网站目录扫描
    一个很简单的版本,以后会做进一步的修改:多线程,从文件中读取,跟据Head头判断等等. 需要提供一个网站和不存在页面的错误提示 CODE: #!/usr/bin/env python # -*- coding:utf-8 -*-&...
    99+
    2023-01-31
    目录 网站 Python
  • Python开发端口扫描器
    首先是最常用的端口扫描器: 虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢?   我这个脚本写的比较简单,默认扫描1-65535全部的端口 实际的话,可以根据需要自己修改脚本来实现定制化扫描 # -*- coding...
    99+
    2023-01-30
    扫描器 端口 Python
  • 目录(Python开发)
    CSS的使用方法 CSS之Bootstrap(快速布局) JavaScript基础学习 JavaScript之setinterval的具体使用 JavaScript作用域 javascript进阶之AJAX 前端基础之jquery py...
    99+
    2023-01-31
    目录 Python
  • Python 网站开发
    1.安装 PythonPython 的版本很多,本例中选择 Python 2.7,安装这个版本的 Python 可以直接使用自带的数据库 SQLite(没听过,在这就不使用了)。你可以从 Python 官网下载 Python,但你要知道在景...
    99+
    2023-01-31
    网站开发 Python
  • PyHacker实现网站后台扫描器编写指南
    目录00x1:模块00x2:请求基本代码00x3:设置00x4:200页面处理00x5:保存结果0x06:完整代码包括如何处理假的200页面/404智能判断等 喜欢用Pyt...
    99+
    2024-04-02
  • 网站开发(周一):项目开发环境
    前言:网站开发教程是在MacBook Pro-macOS Mojave 10.14.2操作系统下,使用Python语言和DjangoMVC架构,开发工具为PyCharm Professional Edition 2018.3,后台服务器为...
    99+
    2023-01-30
    网站开发 环境 项目
  • python网站开发准备ubuntu14
    sudo apt-get install mysql-server mysql-client 输入root密码 然后确认安装tab选定确认 输入数据库密码 重复输入 启动 sudo service mysql start 停止 sudo ...
    99+
    2023-01-30
    网站开发 python
  • dedecms网站开发技巧:合理设置网站栏目结构
    【标题】dedecms网站开发技巧:合理设置网站栏目结构,需要具体代码示例 在进行dedecms网站开发时,一个关键的步骤是合理设置网站的栏目结构。一个清晰合理的栏目结构能够提高网站的...
    99+
    2024-03-14
    结构 dedecms 网站栏目
  • GO语言开发二维码扫描器:如何快速实现?
    二维码是一种很方便的信息传递方式,它可以把大量的信息编码到一个小小的二维码中,我们可以通过扫描二维码来获取信息。在我们的日常生活中,二维码扫描器已经成为了一个很重要的工具。那么,如何使用GO语言来快速实现一个二维码扫描器呢?本文将会详细介...
    99+
    2023-07-19
    二维码 开发技术 load
  • 网站开发中新网站不收录问题的解决办法
    这期内容当中小编将会给大家带来有关网站开发中新网站不收录问题的解决办法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。新网不收录怎么办?为什么有些新网站一直不被百度收录呢?这个问题困惑着大家,下面就给大家带...
    99+
    2023-06-10
  • 网站开发中网站不收录的解决办法有哪些
    这期内容当中小编将会给大家带来有关网站开发中网站不收录的解决办法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。现在有很多的人都在问我网站不收录是什么情况,其实这要看你的网站是新站还是老网站,除此之外...
    99+
    2023-06-07
  • php对接微信公众号扫码登录开发实录(H5微信扫描登录、服务出现故障调试、模版消息设置、扫码轮询交互)
    微信公众号扫码登录开发实录 前言一、服务器配置1.微信公众号配置2.本地服务器验证程序 二、生成登录二维码1.生成微信登录二维码2.封装成便于刷新的函数 三、扫码验证和交互四、模版消息...
    99+
    2023-10-06
    微信 php 开发语言
  • 网站开发中网站不收录的解决办法是什么呢
    今天就跟大家聊聊有关网站开发中网站不收录的解决办法是什么呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。网站不收录的解决办法是什么?网站不收录的原因有很多,小编就与大家聊一聊网站不收...
    99+
    2023-06-07
  • 学习Python,开发自己的个人网站
    随着互联网的发展,越来越多的人开始关注自己的个人品牌和形象,而个人网站就是展示自己的重要途径之一。开发一个自己的个人网站,不仅可以展示自己的技能和优势,还可以扩大自己的影响力和社交圈子。而Python作为一门非常流行的编程语言,...
    99+
    2024-01-19
    Python web 个人网站
  • web前端开发项目资源网站,私家珍藏!
    ...
    99+
    2023-06-03
  • 网站开发中网站收录与排名不成正比的解决方法
    这篇文章将为大家详细讲解有关网站开发中网站收录与排名不成正比的解决方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  做SEO优化的大多数在内容和外推上花费的时间最长,但现在外链效果越来越...
    99+
    2023-06-10
  • Python好用的网站开发框架有哪些
    本篇内容介绍了“Python好用的网站开发框架有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、Django:它的存在,让很多网站...
    99+
    2023-06-02
  • 服务器与网站部署知识体系目录
    1.网站部署必备知识与实践操作 服务器全套基础知识:包含基本概念,作用,服务器选择,服务器管理等域名相关基础知识普及域名备案流程(个人备案,腾讯云 / 阿里云)将网站域名访问从http升级到https...
    99+
    2023-10-21
    服务器 运维 网站部署 博客 域名
  • python在S60系统上开发相关的网站
    官方论坛:[url]http://discussion.forum.nokia.com/forum/forumdisplay.phpf=102[/url][url]http://wiki.forum.nokia.com/index.php/...
    99+
    2023-01-31
    系统 网站 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作