项目介绍
Dirsearch 是一款高效、多线程的 Web 路径扫描工具,专为渗透测试人员和网络安全研究人员设计,用于发现目标网站的隐藏目录、敏感文件及未授权接口。其支持自定义字典、代理配置、请求头伪装等功能,适用于红队渗透、漏洞挖掘及资产测绘等场景。
核心功能
- 多线程扫描:默认 20 线程,可自定义调整以提高效率。
- 智能错误处理:自动过滤重复状态码(如 404),降低误报率。
- 灵活扩展支持:
- 支持自定义字典(如
-w指定字典文件)。 - 支持多种扩展名扫描(如
-e php,asp,aspx)。
- 支持自定义字典(如
- 结果输出:生成可读性强的报告(TXT/JSON/CSV),便于后续分析。
- 绕过检测:支持随机 User-Agent、代理池、请求延迟等隐蔽扫描策略。
适用场景
- 红队渗透:快速定位网站后台、敏感文件(如 admin.php、backup.zip)。
- 漏洞验证:发现未授权访问的 API 接口(如 /api/v1/users)。
- 资产梳理:扫描企业网站的暴露面资产(如遗留测试页面)。
安装教程
pip install dirsearch
pip install --upgrade -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
基础使用教程
语法及参数
输入 python dirsearch.py -h 获取帮助信息。
用法:dirsearch.py [-u|--url] 目标 [-e|--extensions] 扩展名 [选项]
选项:
--version 显示程序的版本号并退出
-h, --help 显示此帮助消息并退出
必需:
-u URL, --url=URL 目标 URL,可以使用多个选项指定多个目标 URL
-l PATH, --urls-file=PATH URL 列表文件
--stdin 从标准输入读取 URL
-cidr=CIDR 目标 CIDR
--raw=PATH 从文件加载原始 HTTP 请求(使用'--scheme'标志设置方案)
-s SESSION_FILE, --session=SESSION_FILE 会话文件
--config=PATH 配置文件路径(默认为'DIRSEARCH_CONFIG'环境变量,否则为'config.ini')
字典设置:
-w WORDLISTS, --wordlists=WORDLISTS 单词列表文件或包含单词列表文件的目录(以逗号分隔)
-e EXTENSIONS, --extensions=EXTENSIONS 扩展名列表,以逗号分隔(例如:php,asp)
-f, --force-extensions 在每个单词列表条目的末尾添加扩展名。
-O, --overwrite-extensions 使用指定的扩展名覆盖单词列表中的其他扩展名
--exclude-extensions=EXTENSIONS 排除的扩展名列表
--remove-extensions 删除所有路径中的扩展名
--prefixes=PREFIXES 将自定义前缀添加到所有单词列表条目中
=SUFFIXES 将自定义后缀添加到所有单词列表条目中
-U, --uppercase 单词列表转为大写
-L, --lowercase 单词列表转为小写
-C, --capital 单词首字母大写
通用设置:
-t THREADS, =THREADS 线程数
-r, --recursive 递归地进行强制破解
--deep-recursive 在每个目录深度上执行递归扫描
--force-recursive 对找到的每个路径执行递归强制破解
-R DEPTH, =DEPTH 最大递归深度
=CODES 用于执行递归扫描的有效状态码
=SUBDIRS 扫描给定 URL 的子目录
=SUBDIRS 在递归扫描期间排除以下子目录
-i CODES, =CODES 包括的状态码
-x CODES, =CODES 排除的状态码
=SIZES 根据大小排除响应
=TEXTS 根据文本排除响应
=REGEX 根据正则表达式排除响应
=STRING 如果此正则表达式与重定向 URL 匹配,则排除响应
=PATH 排除类似于此页面响应的响应
=CODES 每当命中这些状态码之一时跳过目标
=LENGTH 响应的最小长度
=LENGTH 响应的最大长度
=SECONDS 扫描的最大运行时间
--exit-on-error 发生错误时退出
请求设置:
-m METHOD, =METHOD HTTP 请求方法(默认为 GET)
-d DATA, =DATA HTTP 请求数据
=PATH 包含 HTTP 请求数据的文件
-H HEADERS, =HEADERS HTTP 请求标头
=PATH 包含 HTTP 请求标头的文件
-F, --follow-redirects 跟随 HTTP 重定向
--random-agent 每个请求选择一个随机 User-Agent
=CREDENTIAL 认证凭据
=TYPE 认证类型(basic、digest、bearer、ntlm、jwt)
=PATH 包含客户端证书的文件
=PATH 包含客户端证书私钥的文件
=USER_AGENT
=COOKIE
连接设置:
=TIMEOUT 连接超时时间
=DELAY 请求之间的延迟
-p PROXY, =PROXY 代理 URL(HTTP/SOCKS)
=PATH 包含代理服务器的文件
=CREDENTIAL 代理认证凭据
=PROXY 用于重放已发现路径的代理
--tor 使用 Tor 网络作为代理
=SCHEME 原始请求的协议或 URL 中没有协议时使用的协议
=RATE 每秒请求数最大值
=RETRIES 失败请求的重试次数
=IP 服务器 IP 地址
高级设置:
--crawl 在响应中爬取新路径
显示设置:
--full-url 在输出中显示完整 URL
--redirects-history 显示重定向历史记录
--no-color 不使用彩色输出
-q, --quiet-mode 安静模式
输出设置:
-o PATH/URL, =PATH/URL 输出文件或 MySQL/PostgreSQL 数据库 URL
=FORMAT 报告格式(可用:simple、plain、json、xml、md、csv、html、sqlite、mysql、postgresql)
=PATH 日志文件

