// 红队渗透 · 2026-05-09

dirsearch 命令行选项详解:基于官方教程

基于 GitHub 官方仓库 的最新文档,以下是 dirsearch 全部参数的完整详解。


一、安装与基础

环境要求: Python 3.9+

# 推荐方式 - git 克隆
git clone https://github.com/maurosoria/dirsearch.git --depth 1
cd dirsearch
pip3 install -r requirements.txt

# 或 PyPI 安装
pip3 install dirsearch

# Kali Linux(已弃用 apt 方式,推荐 git)

独立二进制文件(无需 Python):

  • Linux: dirsearch-linux-amd64
  • Windows: dirsearch-windows-x64.exe
  • macOS Intel: dirsearch-macos-intel
  • macOS Apple Silicon: dirsearch-macos-silicon

二、必选目标参数(Mandatory)

启动扫描必须指定目标,以下任选其一:

参数 说明 用法示例
-u URL / --url=URL 指定单个或多个目标URL,支持多次叠加 dirsearch -u https://test.com 或 -u https://a.com -u https://b.com
-l PATH / --urls-file=PATH 从本地文件加载URL列表,每行一个URL dirsearch -l targets.txt
--stdin 从标准输入读取URL,无需保存文件 cat urls.txt | dirsearch --stdin
--cidr=CIDR CIDR网段扫描,自动探测Web服务主机 dirsearch --cidr 192.168.1.0/24
--raw=PATH 加载原始HTTP请求报文文件 dirsearch --raw request.txt --scheme https
--nmap-report=PATH 导入Nmap报告(需带 -sV 参数) dirsearch --nmap-report nmap.xml
-s SESSION_FILE / --session=SESSION_FILE 加载已保存的会话,支持断点续扫 dirsearch --session sessions/scan_001
--config=PATH 加载自定义配置文件 dirsearch --config waf_bypass.ini

关键说明:

  • --raw 必须配合 --scheme 指定 http/https,因为原始请求中没有协议信息
  • --nmap-report 要求 Nmap 扫描时加 -sV 版本探测,否则无法正确解析 Web 端口
  • 会话文件采用 JSON 格式存储,旧版 .pickle/.pkl 已不再支持

三、字典配置参数(Dictionary Settings)

控制字典加载、扩展名规则、前后缀、大小写转换:

参数 说明 用法示例
-w WORDLISTS / --wordlists=WORDLISTS 自定义字典文件/目录,多字典用逗号分隔 dirsearch -w /usr/share/dirb/big.txt,custom.txt
--wordlist-categories=CATEGORIES 调用内置分类字典:common, conf, vcs, backups, db, logs, keys, web dirsearch --wordlist-categories common,conf(all 加载全部)
-e EXTENSIONS / --extensions=EXTENSIONS 指定爆破扩展名,逗号分隔 dirsearch -e php,asp,jsp,aspx,html,txt,bak
-f / --force-extensions 强制将扩展名追加到每条字典末尾(默认只替换 %EXT% 占位符) dirsearch -e php -f
-O / --overwrite-extensions 用指定扩展名覆盖字典原有后缀 dirsearch -e jsp -O
--exclude-extensions=EXTENSIONS 全局排除指定扩展名 dirsearch --exclude-extensions jsp,asp
--remove-extensions 移除所有路径中的扩展名(如 admin.php → admin) dirsearch --remove-extensions
--prefixes=PREFIXES 给所有条目添加前缀,逗号分隔 dirsearch --prefixes ./,api/,admin/
--suffixes=SUFFIXES 给文件类路径添加后缀(自动忽略目录) dirsearch --suffixes ~,.bak,.zip,.sql
-U / --uppercase 全部转为大写 dirsearch -U
-L / --lowercase 全部转为小写 dirsearch -L
-C / --capital 首字母大写 dirsearch -C

字典扩展名核心逻辑:

默认模式(仅替换 %EXT%):
  字典: index.%EXT%    → 生成: index.php, index.html
  字典: admin          → 生成: admin(无扩展名)

强制模式 -f(追加扩展名):
  字典: admin          → 生成: admin, admin.php, admin.html, admin/

覆盖模式 -O(替换已有扩展名):
  字典: login.html     → 生成: login.jsp, login.jspa

四、通用扫描参数(General Settings)

参数 说明 默认值 用法示例
-t THREADS / --threads=THREADS 并发线程数 25 dirsearch -t 50(内网)/ -t 10(有WAF)
--async 启用异步模式(协程替代线程) False dirsearch --async
--list-sessions 列出所有可恢复的会话 - dirsearch --list-sessions
--sessions-dir=PATH 自定义会话搜索目录 - dirsearch --sessions-dir /tmp/sessions
-r / --recursive 递归扫描(仅对目录路径递归) False dirsearch -r
--deep-recursive 深度递归(如 api/users 会回头扫 api/) False dirsearch --deep-recursive
--force-recursive 强制递归(对文件也递归,慎用) False dirsearch --force-recursive
-R DEPTH / --max-recursion-depth=DEPTH 最大递归层级,0为不限制 0 dirsearch -r -R 3
--recursion-status=CODES 允许触发递归的状态码 200-399,401,403 dirsearch --recursion-status 200,301
--subdirs=SUBDIRS 扫描指定子目录 - dirsearch --subdirs /,admin/,api/
--exclude-subdirs=SUBDIRS 递归时排除指定子目录 - dirsearch --exclude-subdirs image/,css/
-i CODES / --include-status=CODES 白名单状态码,支持范围 - dirsearch -i 200,401,403,300-399
-x CODES / --exclude-status=CODES 黑名单状态码,支持范围 - dirsearch -x 404,500-599
--exclude-sizes=SIZES 按响应大小排除(如 0B,4KB) - dirsearch --exclude-sizes 0B,2KB
--exclude-text=TEXTS 页面包含指定文本则过滤,可多次使用 - dirsearch --exclude-text "Not Found"
--exclude-regex=REGEX 正则匹配排除响应内容 - dirsearch --exclude-regex "^Error$"
--exclude-redirect=STRING 匹配重定向URL文本/正则过滤 - dirsearch --exclude-redirect "/login.html"
--exclude-response=PATH 加载本地404模板,智能比对过滤 - dirsearch --exclude-response 404.html
--skip-on-status=CODES 遇到指定状态码则跳过当前目标 - dirsearch --skip-on-status 429
--min-response-size=LENGTH 最小响应长度过滤 - dirsearch --min-response-size 100
--max-response-size=LENGTH 最大响应长度过滤 - dirsearch --max-response-size 50000
--max-time=SECONDS 全局扫描最大运行时间 0(无限制) dirsearch --max-time 3600
--exit-on-error 遇到错误立即退出 False dirsearch --exit-on-error

线程建议:

  • 普通外网:15-30
  • 有WAF防护:5-10
  • 内网无限制:50+

五、HTTP请求参数(Request Settings)

参数 说明 用法示例
-m METHOD / --http-method=METHOD HTTP方法,默认GET dirsearch -m POST
-d DATA / --data=DATA POST请求数据 dirsearch -m POST -d "user=admin&pass=123"
--data-file=PATH 从文件加载请求体数据 dirsearch --data-file post_data.txt
-H HEADERS / --header=HEADERS 自定义请求头,可多次叠加 dirsearch -H "X-Auth: token" -H "Referer: https://site.com"
--headers-file=PATH 从文件批量加载请求头 dirsearch --headers-file headers.txt
-F / --follow-redirects 跟随301/302重定向 dirsearch -F
--random-agent 每次请求随机User-Agent dirsearch --random-agent
--auth=CREDENTIAL 认证凭据 dirsearch --auth admin:password
--auth-type=TYPE 认证类型:basic, digest, bearer, ntlm, jwt dirsearch --auth "BearerToken" --auth-type bearer
--cert-file=PATH 客户端证书文件 dirsearch --cert-file client.crt
--key-file=PATH 客户端证书私钥(未加密) dirsearch --key-file client.key
--user-agent=USER_AGENT 固定自定义UA dirsearch --user-agent "Mozilla/5.0..."
--cookie=COOKIE 携带Cookie扫描 dirsearch --cookie "SESSIONID=abc123"

六、网络连接参数(Connection Settings)

参数 说明 默认值 用法示例
--timeout=TIMEOUT 单请求连接超时(秒) 7.5 dirsearch --timeout 15
--delay=DELAY 请求间固定延迟(秒) 0 dirsearch --delay 0.5
-p PROXY / --proxy=PROXY HTTP/SOCKS代理,可多次叠加 - dirsearch -p 127.0.0.1:8080 或 -p socks5://10.0.0.1:1080
--proxies-file=PATH 代理池文件,自动轮换 - dirsearch --proxies-file proxies.txt
--proxy-auth=CREDENTIAL 代理认证账号密码 - dirsearch --proxy-auth user:pass
--replay-proxy=PROXY 仅对命中路径通过代理重放 - dirsearch --replay-proxy 127.0.0.1:8080
--tor 使用Tor匿名网络 - dirsearch --tor
--scheme=SCHEME 强制指定协议(配合–raw使用) auto-detect dirsearch --raw req.txt --scheme https
--max-rate=RATE 每秒最大请求数限制 0 dirsearch --max-rate 100
--retries=RETRIES 失败请求重试次数 1 dirsearch --retries 3
--ip=IP 手动指定目标服务器IP - dirsearch --ip 192.168.1.100
--interface=NETWORK_INTERFACE 指定本机网卡发包 - dirsearch --interface eth1

七、高级设置(Advanced Settings)

参数 说明 用法
--crawl 开启页面爬虫,自动抓取响应中的新链接加入扫描 dirsearch --crawl

八、视图参数(View Settings)

参数 说明 用法
--full-url 输出完整绝对URL(安静模式自动启用) dirsearch --full-url
--redirects-history 展示完整重定向链路 dirsearch --redirects-history
--no-color 关闭终端彩色输出 dirsearch --no-color
-q / --quiet-mode 安静模式,只输出有效结果 dirsearch -q
--disable-cli 完全关闭终端输出,只写入文件 dirsearch --disable-cli
-v / --verbose 详细模式,显示响应时间、编码、内容类型 dirsearch -v

九、输出参数(Output Settings)

参数 说明 用法
-o PATH/URL / --output=PATH/URL 输出文件路径或数据库URL dirsearch -o report.html
--format=FORMAT 报告格式:simple, plain, json, xml, md, csv, html, sqlite, mysql, postgresql dirsearch --format json -o result.json
--log=PATH 保存完整扫描日志 dirsearch --log scan.log

数据库输出格式:

# MySQL
dirsearch -o mysql://user:pass@localhost:3306/dirsearch_db --format mysql

# PostgreSQL  
dirsearch -o postgresql://user:pass@localhost:5432/dirsearch_db --format postgresql

十、配置文件(config.ini)

默认配置文件路径:dirsearch/config.ini,可通过 --config 或环境变量 DIRSEARCH_CONFIG 指定。

[general]
threads = 25
async = False
recursive = False
deep-recursive = False
force-recursive = False
recursion-status = 200-399,401,403
max-recursion-depth = 0
random-user-agents = False
max-time = 0
exit-on-error = False

[dictionary]
default-extensions = php,aspx,jsp,html,js
force-extensions = False
overwrite-extensions = False
lowercase = False
uppercase = False
capitalization = False

[request]
http-method = get
follow-redirects = False

[connection]
timeout = 7.5
delay = 0
max-rate = 0
max-retries = 1

[advanced]
crawl = False

[view]
full-url = False
quiet-mode = False
color = True

[output]
report-format = plain
autosave-report = True
autosave-report-folder = reports/

优先级: 命令行参数 > 自定义 config > 系统默认 config


十一、实战命令组合示例

# 1. 基础单目标扫描
dirsearch -u https://target.com -e php,html,js

# 2. 批量扫描 + 递归 + 线程控制
dirsearch -l urls.txt -e php -r -t 30

# 3. 内网CIDR + 快速模式
dirsearch --cidr 192.168.1.0/24 --timeout 3 --retries 1 -t 50

# 4. 带Cookie的后台扫描
dirsearch -u https://admin.target.com -e php --cookie "SESSION=xxx" -H "X-Requested-With: XMLHttpRequest"

# 5. WAF绕过:随机UA + 代理池 + 延迟
dirsearch -u https://target.com -e php --random-agent --proxies-file proxies.txt --delay 1 --max-rate 50

# 6. 备份文件专项扫描
dirsearch -u https://target.com -e zip,tar,gz,bak,sql --suffixes ~,.bak,.old --prefixes .

# 7. 仅扫目录(不扫文件)
dirsearch -u https://target.com --remove-extensions --suffixes /

# 8. 原始请求导入(复杂认证场景)
dirsearch --raw request.txt --scheme https -e php

# 9. 断点续扫
dirsearch --session sessions/scan_001

# 10. 结果直接入库
dirsearch -u https://target.com -e php --format json -o result.json

# 11. 安静模式 + 完整URL + 过滤404
dirsearch -u https://target.com -e php -q --full-url -x 404

# 12. 爬虫联动模式
dirsearch -u https://target.com -e php --crawl -r

# 13. 排除特定大小和文本的误报
dirsearch -u https://target.com -e php --exclude-sizes 0B,4KB --exclude-text "404 Not Found"

# 14. 使用内置分类字典(配置文件+备份)
dirsearch -u https://target.com --wordlist-categories conf,backups

# 15. 异步高速扫描
dirsearch -u https://target.com -e php --async -t 100

十二、会话管理

扫描过程中按 CTRL+C 可暂停,选择保存会话后,后续通过 --session 恢复:

# 保存会话(扫描时按CTRL+C,选择save并命名)
dirsearch -u https://target.com -e php
# [CTRL+C] → 输入会话名: my_scan

# 列出所有会话
dirsearch --list-sessions

# 恢复会话
dirsearch --session sessions/my_scan

会话存储位置:

  • 源码安装:<dirsearch>/sessions/
  • 独立二进制:$HOME/.dirsearch/sessions/

十三、官方 Tips(实用技巧)

  • 请求限制绕过: 使用 --proxies-file 随机轮换代理
  • 找配置文件/备份: 组合 --suffixes ~ 和 --prefixes .
  • 仅扫目录: --remove-extensions + --suffixes /
  • CIDR扫描降噪: 组合 --cidr, -F, -q 减少噪音
  • 避免429洪水: --skip-on-status 429 遇到限流自动跳过目标
  • 大文件拖慢扫描: 改用 -m HEAD 代替 GET 方法
  • CIDR扫描太慢: 减小超时和重试 --timeout 3 --retries 1

原文 https://blog.csdn.net/2301_79518550/article/details/160923008