Dirsearch 使用手册¶
工具简介¶
Dirsearch 是一款功能强大的Web路径扫描工具,用于发现网站中的隐藏目录和文件。
主要特性:
多线程扫描,速度快
支持多种HTTP方法(GET、POST、HEAD等)
递归目录扫描
自定义字典和扩展名
支持代理和认证
多种输出格式(TXT、JSON、XML等)
支持通配符排除和包含规则
适用场景:
Web安全测试
渗透测试
CTF竞赛
网站结构分析
安装方法¶
方法1:使用pip安装(推荐)¶
# 安装
pip3 install dirsearch
# 验证安装
dirsearch --version
方法2:从GitHub克隆源码¶
# 克隆仓库
git clone https://github.com/maurosoria/dirsearch.git
# 进入目录
cd dirsearch
# 运行
python3 dirsearch.py -u http://example.com
方法3:使用包管理器¶
# Kali Linux / Debian / Ubuntu
sudo apt install dirsearch
# Arch Linux
sudo pacman -S dirsearch
# macOS (Homebrew)
brew install dirsearch
基本用法¶
最简单的扫描¶
dirsearch -u http://example.com
指定扩展名¶
dirsearch -u http://example.com -e php,html,js,txt
使用自定义字典¶
dirsearch -u http://example.com -w /path/to/wordlist.txt
递归扫描¶
dirsearch -u http://example.com -r
保存结果¶
dirsearch -u http://example.com -o results.txt
常用参数¶
目标设置¶
参数 |
说明 |
示例 |
|---|---|---|
|
目标URL |
|
|
URL列表文件 |
|
|
CIDR格式的IP范围 |
|
字典和扩展名¶
参数 |
说明 |
示例 |
|---|---|---|
|
字典文件路径 |
|
|
文件扩展名(逗号分隔) |
|
|
强制扩展名(不添加/) |
|
|
移除扩展名 |
|
扫描控制¶
参数 |
说明 |
示例 |
|---|---|---|
|
线程数(默认30) |
|
|
递归扫描 |
|
|
递归深度 |
|
|
指定子目录扫描 |
|
|
最大扫描时间(秒) |
|
过滤选项¶
参数 |
说明 |
示例 |
|---|---|---|
|
排除HTTP状态码 |
|
|
只包含HTTP状态码 |
|
|
排除响应大小 |
|
|
排除包含特定文本的响应 |
|
|
排除匹配正则的响应 |
|
HTTP设置¶
参数 |
说明 |
示例 |
|---|---|---|
|
HTTP方法 |
|
|
自定义HTTP头 |
|
|
Cookie |
|
|
User-Agent |
|
|
超时时间(秒) |
|
|
代理服务器 |
|
|
HTTP认证 |
|
输出选项¶
参数 |
说明 |
示例 |
|---|---|---|
|
输出文件 |
|
|
输出格式 |
|
|
日志文件 |
|
|
安静模式 |
|
性能优化¶
参数 |
说明 |
示例 |
|---|---|---|
|
随机User-Agent |
|
|
请求延迟(秒) |
|
|
最大请求速率 |
|
实战示例¶
示例1:基础扫描¶
# 扫描常见目录和文件
dirsearch -u http://example.com -e php,html,js,txt
示例2:使用自定义字典¶
# 使用DirBuster字典
dirsearch -u http://example.com \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-e php,html
示例3:递归扫描并保存结果¶
# 递归3层深度,保存为JSON格式
dirsearch -u http://example.com \
-e php,html,js \
-r -R 3 \
-o results.json \
--format json
示例4:排除特定状态码¶
# 只显示200和301状态码
dirsearch -u http://example.com \
-e php \
--include-status 200,301
示例5:多线程高速扫描¶
# 使用100个线程进行快速扫描
dirsearch -u http://example.com \
-e php,html \
-t 100 \
--random-agent
示例6:通过代理扫描¶
# 使用Burp Suite代理
dirsearch -u http://example.com \
-e php \
--proxy http://127.0.0.1:8080
示例7:批量扫描多个目标¶
# 创建目标列表文件 targets.txt
# 内容:
# http://example1.com
# http://example2.com
# http://example3.com
dirsearch -l targets.txt -e php,html -o batch_results.txt
示例8:扫描特定子目录¶
# 只扫描/admin和/backup目录
dirsearch -u http://example.com \
--subdirs admin,backup \
-e php,html
示例9:带认证的扫描¶
# HTTP基本认证
dirsearch -u http://example.com \
--auth admin:password123 \
-e php
# 使用Cookie认证
dirsearch -u http://example.com \
--cookie "PHPSESSID=abc123; auth_token=xyz789" \
-e php
示例10:CTF场景 - 寻找隐藏文件¶
# 常见CTF隐藏文件扫描
dirsearch -u http://ctf.example.com \
-e txt,zip,bak,old,backup,sql,tar.gz \
-w common.txt \
--exclude-status 404 \
-o ctf_scan.txt
字典文件¶
内置字典¶
Dirsearch自带多个字典文件,位于:
/opt/homebrew/lib/python3.11/site-packages/dirsearch/db/(macOS Homebrew)/usr/share/dirsearch/db/(Linux)
常用内置字典:
dicc.txt- 默认字典common.txt- 通用目录和文件big.txt- 大型字典
推荐外部字典¶
# SecLists (推荐)
git clone https://github.com/danielmiessler/SecLists.git
# 常用路径:
# SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
# SecLists/Discovery/Web-Content/common.txt
# SecLists/Discovery/Web-Content/big.txt
# DirBuster字典(Kali Linux)
/usr/share/wordlists/dirbuster/
自定义字典示例¶
创建CTF专用字典 ctf_wordlist.txt:
flag
flag.txt
flag.php
admin
admin.php
login
login.php
upload
upload.php
backup
backup.zip
config
config.php
.git
.svn
robots.txt
sitemap.xml
index.bak
index.old
输出格式¶
支持的输出格式¶
plain(默认) - 纯文本json- JSON格式xml- XML格式md- Markdown格式csv- CSV格式html- HTML报告
输出示例¶
# 纯文本输出
dirsearch -u http://example.com -o results.txt
# JSON格式
dirsearch -u http://example.com -o results.json --format json
# HTML报告
dirsearch -u http://example.com -o report.html --format html
JSON输出示例¶
{
"target": "http://example.com",
"results": [
{
"path": "/admin",
"status": 200,
"size": "4KB",
"redirect": null
},
{
"path": "/backup.zip",
"status": 200,
"size": "1.2MB",
"redirect": null
}
]
}
进阶技巧¶
1. 组合使用多个字典¶
# 合并多个字典
cat dict1.txt dict2.txt dict3.txt > combined.txt
dirsearch -u http://example.com -w combined.txt
2. 使用正则过滤¶
# 排除包含"error"的响应
dirsearch -u http://example.com \
--exclude-regex "error|exception|warning"
3. 自定义HTTP头¶
# 设置多个自定义头
dirsearch -u http://example.com \
-H "X-Forwarded-For: 127.0.0.1" \
-H "X-Custom-Header: value"
4. 速率限制(避免被封禁)¶
# 每秒最多50个请求,每个请求延迟0.1秒
dirsearch -u http://example.com \
--max-rate 50 \
--delay 0.1
5. 结合其他工具¶
# 先用nmap发现Web服务,再用dirsearch扫描
nmap -p 80,443,8080 192.168.1.0/24 -oG - | \
grep open | \
awk '{print $2}' | \
while read ip; do
dirsearch -u http://$ip -e php,html -o scan_$ip.txt
done
6. 断点续扫¶
# 使用会话保存进度
dirsearch -u http://example.com \
--session-file session.txt
常见问题¶
Q1: 扫描速度太慢怎么办?¶
解决方案:
# 增加线程数
dirsearch -u http://example.com -t 100
# 使用更小的字典
dirsearch -u http://example.com -w common.txt
# 减少扩展名
dirsearch -u http://example.com -e php
Q2: 被目标网站封禁IP怎么办?¶
解决方案:
# 降低扫描速度
dirsearch -u http://example.com --delay 1 --max-rate 10
# 使用代理
dirsearch -u http://example.com --proxy http://proxy:8080
# 随机User-Agent
dirsearch -u http://example.com --random-agent
Q3: 如何扫描HTTPS网站?¶
解决方案:
# 直接使用https://
dirsearch -u https://example.com
# 忽略SSL证书错误
dirsearch -u https://example.com --no-verify
Q4: 如何只查看成功的结果?¶
解决方案:
# 只显示200状态码
dirsearch -u http://example.com --include-status 200
# 排除404和403
dirsearch -u http://example.com --exclude-status 404,403
Q5: 如何扫描需要登录的网站?¶
解决方案:
# 使用Cookie
dirsearch -u http://example.com \
--cookie "session_id=abc123; auth=xyz789"
# 使用HTTP认证
dirsearch -u http://example.com \
--auth username:password
CTF实战技巧¶
1. 寻找备份文件¶
dirsearch -u http://ctf.example.com \
-e bak,old,backup,zip,tar,tar.gz,sql,db \
-w backup_wordlist.txt
2. 寻找Git/SVN泄露¶
dirsearch -u http://ctf.example.com \
-w git_svn.txt
# git_svn.txt内容:
# .git
# .git/config
# .git/HEAD
# .svn
# .svn/entries
3. 寻找管理后台¶
dirsearch -u http://ctf.example.com \
-e php,html,jsp \
--subdirs admin,manage,backend,console
4. 寻找上传点¶
dirsearch -u http://ctf.example.com \
-w upload_wordlist.txt \
-e php,jsp,asp,aspx
# upload_wordlist.txt内容:
# upload
# uploads
# uploader
# file
# files
# attachment
安全提示¶
⚠️ 重要提醒:
仅用于授权测试:只能在获得明确授权的系统上使用
遵守法律法规:未经授权的扫描可能违法
教育用途:本手册仅供安全教育和CTF竞赛使用
合理使用:避免对目标系统造成过大负载
数据保护:妥善保管扫描结果,保护隐私数据
参考资源¶
官方GitHub: https://github.com/maurosoria/dirsearch
SecLists字典: https://github.com/danielmiessler/SecLists
OWASP测试指南: https://owasp.org/www-project-web-security-testing-guide/
文档版本: 1.0 更新日期: 2025-01-21 适用版本: Dirsearch v0.4.3+
快速参考¶
# 最常用命令
dirsearch -u URL -e php,html,js -t 50 -o results.txt
# CTF场景
dirsearch -u URL -e txt,zip,bak -w common.txt --exclude-status 404
# 渗透测试
dirsearch -u URL -e php,jsp,asp -r -R 2 --random-agent --proxy http://127.0.0.1:8080