dirmap 工具学习

news2024/11/18 1:21:57

dirmap

  • 1.1 工具的下载路径
  • 1.2 工具的安装流程
  • 1.3 工具的详细使用
    • 参数说明
    • 测试实验

1.1 工具的下载路径

dirmap 是一个高级 web 目录扫描工具,基于 python3 开发、运行,功能将会强于 DirBuster、Dirsearch、cansina、御剑。
github 下载地址

1.2 工具的安装流程

  1. 安装
$ git clone https://github.com/H4ckForJob/dirmap.git && cd dirmap && python3 -m pip install -r requirement.txt
  1. python 包安装
    cmd 进入 dirmap 安装的根目录,执行:
pip install -r requirements.txt #安装dirmap库
  1. 安装成功结果
    在这里插入图片描述

1.3 工具的详细使用

参数说明

以下是 dirmap 常用的参数:

  • -u or --url: 指定要扫描的目标 URL。
  • -w or --wordlist: 指定字典文件,用于进行目录名或文件名的猜测。
  • -e or --extensions: 指定要扫描的文件扩展名,如 php、asp 等。
  • -l or --level: 指定扫描的级别。默认为 1,表示只对指定 URL 进行扫描;如果设置为 2,还会对发现的目录进行扫描,依此类推。
  • -t or --threads: 指定并发线程数,用于加快扫描速度。
  • --delay: 指定扫描请求之间的延迟时间,以避免对目标网站造成过多的请求负载。
  • --timeout: 指定 HTTP 请求的超时时间。
  • -a or --agent: 指定 User-Agent 字符串,来模拟不同的浏览器或爬虫。
  • -p or --proxy: 指定代理服务器地址和端口号。

测试实验

  1. 使用单个目标
$ python3 dirmap.py -iU http://127.0.0.1 -lcf
  • 执行结果
    在这里插入图片描述
  1. 多个目标
新建urls.txt,在里面加入:http:127.0.0.1 https://www/langxh.top
执行:$ python3 dirmap.py -iF urls.txt -lcf
  • 执行结果
    在这里插入图片描述
  1. 文件读取
python3 dirmap.py -iF targets.txt -lcf

targets.txt中支持上述格式

  1. 结果保存
  • 结果将自动保存在项目根目录下的output文件夹中
    在这里插入图片描述
  • 每一个目标生成一个 txt,命名格式为目标域名.txt
  • 结果自动去重复,不用担心产生大量冗余
  1. 高级使用

自定义 dirmap 配置,开始探索 dirmap 高级功能

暂时采用加载配置文件的方式进行详细配置,不支持使用命令行参数进行详细配置

编辑项目根目录下的dirmap.conf,进行配置

dirmap.conf配置详解

#递归扫描处理配置
[RecursiveScan]
#是否开启递归扫描:关闭:0;开启:1
conf.recursive_scan = 0
#遇到这些状态码,开启递归扫描。默认配置[301,403]
conf.recursive_status_code = [301,403]
#URL超过这个长度就退出扫描
conf.recursive_scan_max_url_length = 60
#这些后缀名不递归扫
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
#设置排除扫描的目录。默认配置空。其他配置:e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

#扫描模式处理配置(4个模式,1次只能选择1个)
[ScanModeHandler]
#字典模式:关闭:0;单字典:1;多字典:2
conf.dict_mode = 1
#单字典模式的路径
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
#多字典模式的路径,默认配置dictmult
conf.dict_mode_load_mult_dict = "dictmult"
#爆破模式:关闭:0;开启:1
conf.blast_mode = 0
#生成字典最小长度。默认配置3
conf.blast_mode_min = 3
#生成字典最大长度。默认配置3
conf.blast_mode_max = 3
#默认字符集:a-z。暂未使用。
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
#默认字符集:0-9。暂未使用。
conf.blast_mode_num = "0123456789"
#自定义字符集。默认配置"abc"。使用abc构造字典
conf.blast_mode_custom_charset = "abc"
#自定义继续字符集。默认配置空。
conf.blast_mode_resume_charset = ""
#爬虫模式:关闭:0;开启:1
conf.crawl_mode = 0
#用于生成动态敏感文件payload的后缀字典
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
#解析robots.txt文件。暂未实现。
conf.crawl_mode_parse_robots = 0
#解析html页面的xpath表达式
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
#是否进行动态爬虫字典生成。默认配置1,开启爬虫动态字典生成。其他配置:e.g:关闭:0;开启:1
conf.crawl_mode_dynamic_fuzz = 1
#Fuzz模式:关闭:0;单字典:1;多字典:2
conf.fuzz_mode = 0
#单字典模式的路径。
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
#多字典模式的路径。默认配置:fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
#设置fuzz标签。默认配置{dir}。使用{dir}标签当成字典插入点,将http://target.com/{dir}.php替换成http://target.com/字典中的每一行.php。其他配置:e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

#处理payload配置。暂未实现。
[PayloadHandler]

#处理请求配置
[RequestHandler]
#自定义请求头。默认配置空。其他配置:e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
#自定义请求User-Agent。默认配置chrome的ua。
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
#自定义请求cookie。默认配置空,不设置cookie。其他配置e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#自定义401认证。暂未实现。因为自定义请求头功能可满足该需求(懒XD)
conf.request_header_401_auth = ""
#自定义请求方法。默认配置get方法。其他配置:e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
#自定义每个请求超时时间。默认配置3秒。
conf.request_timeout = 3
#随机延迟(0-x)秒发送请求。参数必须是整数。默认配置0秒,无延迟。
conf.request_delay = 0
#自定义单个目标,请求协程线程数。默认配置30线程
conf.request_limit = 30
#自定义最大重试次数。暂未实现。
conf.request_max_retries = 1
#设置持久连接。是否使用session()。暂未实现。
conf.request_persistent_connect = 0
#302重定向。默认False,不重定向。其他配置:e.g:True;False
conf.redirection_302 = False
#payload后添加后缀。默认空,扫描时,不添加后缀。其他配置:e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

#处理响应配置
[ResponseHandler]
#设置要记录的响应状态。默认配置[200],记录200状态码。其他配置:e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
#是否记录content-type响应头。默认配置1记录
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
#是否记录页面大小。默认配置1记录
#conf.response_size = 0
conf.response_size = 1
#是否自动检测404页面。默认配置True,开启自动检测404.其他配置参考e.g:True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
#自定义匹配503页面正则。暂未实现。感觉用不着,可能要废弃。
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
#自定义正则表达式,匹配页面内容
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
#跳过显示页面大小为x的页面,若不设置,请配置成"None",默认配置“None”。其他大小配置参考e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

#代理选项
[ProxyHandler]
#代理配置。默认设置“None”,不开启代理。其他配置e.g:{"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None

#Debug选项
[DebugMode]
#打印payloads并退出
conf.debug = 0

#update选项
[CheckUpdate]
#github获取更新。暂未实现。
conf.update = 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1303097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日本服务器:确保其稳定性的几个要点

​  在租用日本服务器时,用户们大多一定会关注它的稳定性,其实这些顾及都是正常的。毕竟,网站要想正常运行,保障服务器稳定是关键。本文将讨论有关如何保障日本服务器稳定性的一些有用技巧,希望对您有所帮助。 1.注重…

西工大网络空间安全学院计算机系统基础实验二(清楚实验框架及phase_1)

首先,将自己的实验包从Windows系统中使用scp命令传到Linux虚拟机中。而要想传到Linux虚拟机中,第一步就是要确定Linux虚拟机的IP地址,如 图1:确定Linux虚拟机的IP地址 所示。接着使用scp命令将实验包从Windows系统传送到Linux虚拟…

Linux系统的各项命令

文章目录 Linux系统的目录结构Linux路径的描述方式Linux命令入门**什么是命令、命令行**Linux命令基础格式 ls命令入门HOME目录和工作目录ls命令的参数和选项ls命令的 -a选项ls命令的 -l选项ls命令选项的组合使用ls选项和参数的组合使用ls命令的 -h选项 目录切换相关命令&#…

迅为RK3568开发板使用OpenCV处理图像(颜色转换)

1 颜色转换 本小节代码在配套资料“iTOP-3568 开发板\03_【iTOP-RK3568 开发板】指南教程 \04_OpenCV 开发配套资料\05”目录下,如下图所示: cv2.cvtColor()函数功能: 将一幅图像从一个色彩空间转换到另一个色彩空间。 函数原型&#xff…

使用pe安装windows操作系统

一、系统安装前准备工作,制作系统盘 (1)拷贝电脑上的资料 (2)准备一个至少8G的U盘 (3)下载windows镜像文件及pe软件 通过百度网盘可下载下列软件及镜像 windows镜像文件(百度网盘…

Shell三剑客:正则表达式简介

前言 一、名称解释 正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式&am…

无需公网IP联机Minecraft,我的世界服务器本地搭建教程

目录 前言 1.Mcsmanager安装 2.创建Minecraft服务器 3.本地测试联机 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射内网端口 5.远程联机测试 6. 配置固定远程联机端口地址 6.1 保留一个固定TCP地址 6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 8.总…

【docker三】Docker镜像的创建方法

目录 一、Docker镜像: 1、 镜像的概念 2、docker的创建镜像方式: 1.1、基于已有镜像进行创建: 1.2、基于模版创建: 1.3、基于dockerfile创建: 二、Dockerfile概述 1、Dockerfile概念: 2、dockerfile…

数据结构与算法—递归及其应用(八皇后,小球出迷宫)

递归 文章目录 递归1.递归应用场景2.递归的概念3.递归调用机制4.递归能解决什么问题5.递归需要遵守的重要规则6.递归-迷宫、八皇后问题6.1 迷宫问题6.2 八皇后问题 1.递归应用场景 迷宫问题(回溯),递归(Recursion) 2.递归的概念 简单的说:递归就是方法自…

互联网数据传输原理 |OSI七层网络参考模型

网络模型 OSI 网络参考模型,仅作为参考,也就是说OSI网络实际中并不使用。我们只是把OSI网络模型作为参考,在网络出现问题的时候,可以从一个宏观的整体去分析和解决问题。而且搭建网络的时候也并不一定需要划分为7层 但是当今互联…

面向AOP(2)spring

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

C语言使用malloc函数模拟开辟二维数组(带分析)

系列文章目录 🌟 个人主页:古德猫宁- 🌈 信念如阳光,照亮前行的每一步 文章目录 系列文章目录🌈 *信念如阳光,照亮前行的每一步* 当我们使用malloc函数来模拟创建一个二维数组时,我们需要理解…

VBA信息获取与处理:在EXCEL中随机函数的利用

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

Caching the Application Engine Server 缓存应用程序引擎服务器

Caching the Application Engine Server 缓存应用程序引擎服务器 Application Engine caches metadata just like the application server. This caching enhances performance because a program can refer to the local cache for any objects that it uses. 应用程序引擎…

客服工单系统推荐:哪个最适合您?

客服工单系统是企业的业务过程的“保安”,保障业务流程的顺利开展,同时保障企业客户的权益。所以,市场上有越来越多的企业纷纷配置了客服工单系统,以提供客户服务质量。 对于有购买意向的中小企业来讲,需要关注哪些因…

OpenKylin安装idea

Web和客户端都支持Linux了,一个为了Linux上调试程序方便,一个为了把开发环境彻底支持Linux,在Linux上安装idea运行代码,之前剔除Maven那些的优点就来了,在OpenKylin上我只要安装idea和jdk就能正常运行代码了。 首先从…

小程序嵌套H5

小程序嵌套H5 使用Hbuild x开发H5页面项目里面使用了js-sdk工具包H5发布完成之后生成URL。新建一个小程序空项目,填写小程序的appid。本地调试的时候如果报错无法打开该网页,那么需要勾选先的不校验。发布体验版本需要注意下面的两个配置点。 使用Hbuild…

CV计算机视觉每日开源代码Paper with code速览-2023.12.6

点击计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构:Transformer】Rejuvenating image-GPT as Strong Visual Representation Learners 论文地址:https://a…

你好!堆排序【JAVA】

目录 1.简单介绍 2.大小顶堆 3.基本思想 4.基本思路 4.代码实现数组转化堆 5.代码排序 6.总代码测试 1.简单介绍 堆排序是一种基于堆数据结构的排序算法,其核心思路是利用堆这种特殊的数据结构来对数据进行排序。堆是一种完全二叉树,并且满足父节…

建筑可视化数据大屏汇总,UI源文件(PC端大屏设计)

酷炫的大屏设计让数据更好的展现,方便业务人员分析数据,辅助领导决策。现在分享大屏Photoshop源文件,以下为部分截图示意。 划重点:文末可获得完整素材包~ 01 科技建筑平台数据可视化 02 建筑公司可视化数据汇总平台 03 深蓝…