菜单
本页目录

DirScan —— 高性能 Web 目录与隐蔽资产扫描工具


介绍

DirScan 是一款高效 Web 目录、备份文件、隐蔽资产发现与web资产存活快速验证工具。工具设计轻量、并发友好,支持代理、认证与自定义请求头,内置指纹识别库,结果可导出 excel,便于后续分析与报告生成。

主要目标是快速发现隐蔽资产、备份文件、目录与可能被遗留的常见敏感文件,从而为安全评估、红队演练和资产盘点提供高质量的初步数据。

DirScan 所使用的都是作者独立设计的模块,如:备份文件检测、请求方法库、路径扫描模块,并且每个模块都在持续优化更新,这些支持库共同支撑起了DirScan的实现。

特点

  • 备份文件: 基于输入目标自动生成扫描字典,与内置字典的结合扫描
  • 隐蔽资产: 内置数百个产品、框架的目录字典
  • 资产存活: 对输入的URL(列表)快速进行存活探测,通过输出状态码、指纹等信息快速筛选目标
  • 严格校验: 对不同文件有不同的判断规则,而不仅是判断响应状态码
  • 深度挖掘: 基于爬取到的路径与内置路径拼接产品、框架字典,深度挖掘隐藏在目录下的资产信息
  • 连接复用: 第一次建立TCP连接后,重复使用该连接发送Http请求,速度与性能提升3~5倍

主要特性

  • 高并发扫描,支持自定义线程数以提升扫描速度。
  • 多种扫描模式:all backup dir cms info 自定义扫描字典,按需选择减少误报与加速任务。
  • 支持 HTTP 代理(含带认证的代理)。
  • 支持 Basic Auth、Cookie 与自定义请求头文件。
  • 默认识别 Web 指纹发现潜在高危资产。
  • 扫描结果可导出为 Excel,字段包含路径、标题、状态码、响应大小与指纹结果。
  • 命令行工具,易集成到 CI / 自动化流程。

使用说明


  ░██████                       ░██████
 ░██   ░██                     ░██   ░██
░██         ░███████  ░███████░██         ░███████  ░██████  ░████████
 ░████████ ░██    ░██░██    ░██░████████ ░██    ░██      ░██ ░██    ░██
        ░██░█████████░██              ░██░██        ░███████ ░██    ░██
 ░██   ░██ ░██       ░██    ░██░██   ░██ ░██    ░██░██   ░██ ░██    ░██
  ░██████   ░███████  ░███████  ░██████   ░███████  ░█████░██░██    ░██


  + Author: 林乐天
  + Version: v1.5
  + Update: 2025-10-08
  + Docs: https://www.birdy02.com/docs/dirscan

  * DirScan是一款高效的Web目录、备份文件、隐蔽资产挖掘、Web资产存活的扫描工具,支持高并发、代理、认证等特性。
  * 默认识别指纹信息,发现高危资产
  * 扫描结果输出Excel

命令基本格式:

dirScan [flags]

支持的 Flags

  -a, --auth string         Basic认证信息 [username:password]
  -c, --cookie string       请求Cookie [SESSION=xxxx;]
  -d, --depth               跳过深度挖掘功能 ps:启用可挖掘隐藏在二级目录下的资产
      --header string       请求头文件,不包含内容 -> [GET /index HTTP/x.x]
  -h, --help                help for dirScan
  -m, --mode string         指定扫描的模式:
                            * all: 全模块扫描-调用所有扫描模块,扫描顺序[backup-cms-dir]
                            * backup: 备份文件扫描-基于输入目标生成和内置字典,对目标可能泄漏的数据库、web等备份文件进行检测.
                            * dir: 内置路径扫描-使用内置1w+路径对目标进行碰撞,能发现泄漏文件或路径.
                            * cms: 资产发现扫描-扫描隐藏在特定目录下的资产,如: /nacos
                            * info: 只对输入目标列表进行探测和基本信息识别,一般用于快速批量检测网站信息中.
                            * dist.txt: 路径字典扫描-输入自定义字典,使用dir模块进行碰撞,自定义字典不支持深度挖掘. (default "cms")
  -p, --proxy string        代理服务器地址 [http://127.0.0.1:8080 认证:http://username:password@127.0.0.1:8080]
  -r, --retry int           请求失败后重试次数 (default 2)
  -t, --thread int          并发线程数 (default 20)
      --timeout int         请求超时时间[秒] (default 4)
  -u, --url string          输入目标 [http(s)://xxx:xx 或 urls.txt,urls.csv(列:扫描目标,任务描述)]
      --user-agent string   指定User-Agent头

常见用法示例

  • 单个目标快速扫描:
dirscan -u https://example.com
  • 从文件批量扫描(urls.txt 每行为一个 URL):
dirscan -u urls.txt -t 100 -m cms
  • 通过代理扫描并设置超时和字典:
dirscan -u https://example.com -p http://127.0.0.1:8080 --timeout 10 -w ./wordlists/common.txt
  • 批量扫描存活资产信息:
dirscan -u urls.txt -t 100 -m info
  • 内网或受保护资源,附带 Basic Auth 与 Cookie:
dirscan -u https://intranet.local -a username:password -c "SESSION=abcd1234;" --mode backup
  • 使用自定义请求头文件(仅包含请求头,不包含请求行):
dirscan -u https://example.com --header ./headers.txt

终端日志

  • 多目标
14:18:04 [INFO] 输入目标 3 个
14:18:04 [INFO] >> 备份文件扫描 <<
14:18:04 [BackUpScan] 待扫描文件: 2499
14:18:04 [BackUpScan] Target: https://www.birdy02.com
14:18:04 [BackUpScan] Thread: 50
14:18:11 progress:  100.00%--------------------------------------------------
14:18:11 [INFO] >> 隐蔽资产发现扫描 <<
14:18:11 [DirScan] 待扫描路径: 395
14:18:11 [DirScan] Target: https://www.birdy02.com
14:18:11 [DirScan] Thread: 50

14:18:13 [DirScan] 200 - 49B https://www.birdy02.com/actuator/health {SpringBoot}
14:18:14 [DirScan] 200 - 8.89KB https://www.birdy02.com/docs {google-webmaster-platform} title:文档 - 林乐天的个人博客
14:18:14 [DirScan] 200 - 10.75KB https://www.birdy02.com/login {登陆页面} title:登录 - 林乐天的个人博客
14:18:15 [DirScan] 200 - 67.51KB https://www.birdy02.com/index {PHP,google-webmaster-platform} title:林乐天的个人博客
14:18:17 [DirScan] 深度挖掘路径: 9
14:18:17 [DirScan] 深度挖掘字典: 4689
14:19:41 [DirScan] Scanning stopped
--------------------------------------------------
14:19:41 [INFO] >> 路径扫描 <<
14:19:41 [DirScan] 待扫描路径: 11024
14:19:41 [DirScan] Target: https://www.birdy02.com
14:19:41 [DirScan] Thread: 50

14:19:51 [DirScan] 200 - 113.88KB https://www.birdy02.com/404 {iframe} title:404
14:20:22 [DirScan] 200 - 28.09KB https://www.birdy02.com/archives {google-webmaster-platform} title:文章:27 - 林乐天的个人博客
14:20:49 [DirScan] 200 - 23.06KB https://www.birdy02.com/rss.xml  title:林乐天的个人博客
14:20:51 [DirScan] 200 - 12.72KB https://www.birdy02.com/sitemap.xml
14:21:01 [DirScan] 深度挖掘路径: 9
14:21:01 [DirScan] 深度挖掘字典: 4905
14:22:27 [DirScan] Scanning stopped
14:22:27 [INFO] >> 备份文件扫描 <<
14:22:27 [BackUpScan] 待扫描文件: 2499
14:22:27 [BackUpScan] Target: https://w.birdy02.com
14:22:27 [BackUpScan] Thread: 50
14:22:27 [BackUpScan] 200 - 31.29KB https://w.birdy02.com/w.birdy02.com.tar.gz
14:22:33 progress:  100.00%--------------------------------------------------
14:22:33 [INFO] >> 隐蔽资产发现扫描 <<
14:22:33 [DirScan] 待扫描路径: 395
14:22:33 [DirScan] Target: https://w.birdy02.com
14:22:33 [DirScan] Thread: 50

14:22:37 [DirScan] 深度挖掘路径: 12
14:22:37 [DirScan] 深度挖掘字典: 6252
14:22:53 [DirScan] Scanning stopped
--------------------------------------------------
14:22:53 [INFO] >> 路径扫描 <<
14:22:53 [DirScan] 待扫描路径: 11024
14:22:53 [DirScan] Target: https://w.birdy02.com
14:22:53 [DirScan] Thread: 50

14:22:59 [DirScan] 200 - 113.88KB https://w.birdy02.com/404.html {iframe} title:404
14:23:10 [DirScan] 200 - 31.58KB https://w.birdy02.com/favicon.ico
14:23:11 [DirScan] 200 - 13.79KB https://w.birdy02.com/index.html  title:林乐天 - 个人主页
14:23:22 [DirScan] 深度挖掘路径: 12
14:23:22 [DirScan] 深度挖掘字典: 6540
14:23:38 [DirScan] Scanning stopped
14:23:38 [INFO] >> 备份文件扫描 <<
14:23:38 [BackUpScan] 待扫描文件: 2499
14:23:38 [BackUpScan] Target: https://cloud.birdy02.com:3443
14:23:38 [BackUpScan] Thread: 50
14:23:43 progress:  100.00%--------------------------------------------------
14:23:43 [INFO] >> 隐蔽资产发现扫描 <<
14:23:43 [DirScan] 待扫描路径: 395
14:23:43 [DirScan] Target: https://cloud.birdy02.com:3443
14:23:43 [DirScan] Thread: 50

14:23:48 [DirScan] 深度挖掘路径: 4
14:23:48 [DirScan] 深度挖掘字典: 2084
14:23:59 [DirScan] Scanning stopped
--------------------------------------------------
14:23:59 [INFO] >> 路径扫描 <<
14:23:59 [DirScan] 待扫描路径: 11024
14:23:59 [DirScan] Target: https://cloud.birdy02.com:3443
14:23:59 [DirScan] Thread: 50

14:24:35 [DirScan] 200 - 549B https://cloud.birdy02.com:3443/index.html {Access-Control}
14:24:50 [DirScan] 200 - 27B https://cloud.birdy02.com:3443/title {Access-Control}
14:24:52 [DirScan] 200 - 3B https://cloud.birdy02.com:3443/version {Access-Control}
14:24:56 [DirScan] 深度挖掘路径: 4
14:24:56 [DirScan] 深度挖掘字典: 2180
14:25:07 [DirScan] Scanning stopped

14:25:07 [INFO] 扫描完成!
14:25:07 [INFO] Excel文件: output/dirsan-1759559107.xlsx

输出说明

工具会把扫描结果导出为 Excel 文件,常见字段如下:

file — 发现的文件

  • 目标描述:任务描述、一般可用于指定归属单位
  • 发现时间:文件、路径的发现时间
  • 文件名:扫描的文件名称
  • 文件大小:响应体大小(字节)
  • 请求Url:文件的URL地址
  • 响应状态:HTTP 响应码
  • 请求头:Http的请求头
  • 响应头:Http的响应头
  • Hash:响应体的hash值(如果被Head方法扫描到,则无hash值)

dir — 发现的目录

  • 目标描述:任务描述、一般可用于指定归属单位
  • 发现时间:文件、路径的发现时间
  • 目标URL:文件的URL地址
  • 请求路径:请求的URL路径部分
  • 请求协议:请求的协议
  • 主机名:请求的Hostname
  • IP地址:响应的IP地址
  • 响应标题:响应网页的标题
  • 响应状态:HTTP 响应码
  • 响应长度:响应体大小(字节)
  • 指纹:检测到的指纹信息
  • 请求头:Http的请求头
  • 响应头:Http的响应头
  • Hash:响应体的hash值

扫描建议与安全注意

  1. 合法授权:在进行外部或非自有目标扫描之前,务必获得明确授权。未经授权的扫描可能违反法律或触发安全响应。
  2. 并发与节奏控制:根据目标承载能力调整 -t 并发数与 --timeout,避免对目标造成服务中断。
  3. 环境隔离:在生产环境或敏感网络运行前,先在测试环境验证参数配置。
  4. 敏感数据处理:扫描结果中可能包含敏感信息(如备份文件路径、凭据泄露迹象等),请按企业数据保护规范存储与传输。

集成与自动化

DirScan 适合集成到:

  • CI / 定期巡检任务(结合定时器或调度器)
  • 资产管理平台(定期增量扫描 + 合并结果)
  • 红队工具链(作为前期信息收集模块)

示例(CRON 每天凌晨 2 点批量扫描):

0 2 * * * /opt/dirscan/dirscan -u /opt/targets/urls.txt -w /opt/wordlists/common.txt -t 20 --timeout 10 -m all -o /data/scan-results/$(date +\%F)-dirscan.xlsx

常见问题(FAQ)

问:如何减少误报?

答:我们通过对响应数据进行清洗和对比,可以排除掉大部分的无效数据,并且内置一批特征判断的路径,极大降低了误报率。

问:是否支持登录态扫描(如表单登录)?

答:当前版本支持 Basic Auth、Cookie注入与自定义请求头,只需要将认证后的 token(验证) 信息添加到请求中即可。


贡献者指南

欢迎任何形式的贡献:bug 报告、字典/指纹更新、功能改进或文档完善。


联系方式

WeChat:

描述文字