1. 安装
pip install dirsearch
若是速度很慢,换清华源
2. 使用(常见命令)
//使用前需要确保dirsearch已经添加到环境变量,否则需要使用python dirsearch.py
- 简单使用
dirsearch -u target
- 指定特定文件拓展名
dirsearch -e php,html,js -u target
- 递归扫描
dirsearch -e php,html,js -u target -r
- 设置最大递归深度
dirsearch -e php,html,js -u target -r --recursion-depth 3 --recursion-status 200-399
- 线程
dirsearch -e php,html,js -u target -t 20
- 前后缀
dirsearch -e php,html,js -u target --prefixes .,admin,_
- 过滤器
dirsearch -e php,html,js -u target
--exclude-sizes 1B,10B
--exclude-texts "403 Forbidden"
--exclude-regexps "^Error$"
--exclude-redirects "https://(.*)"
--exclude-content /error.html
- 扫描子目录
dirsearch -e php,html,js -u target --subdirs admin/,folder/,/
//也可以使用
--exclude-subdirs排除
- 代理
dirsearch -e php,html,js -u target
--proxy 127.0.0.1:8080
--proxy socks5:10.10.0.1:8080
--proxylist proxyservers.txt
3. 生成报告
格式有:
- simple
- plain
- json
- xml
- md
- csv
- html
4. 选项
- 强制性
-u URL, --url=URL 目标URL
-l FILE, --url-list=FILE
目标URL列表文件
--stdin 来自STDIN的目标URL列表
--cidr=CIDR CIDR目标
--raw=FILE 文件从文件加载原始HTTP请求(使用`--Scheme`标志设置方案)
-e EXTENSIONS, --extensions=EXTENSIONS
用逗号分隔的扩展列表(例如:php、asp)
-X EXTENSIONS, --exclude-extensions=EXTENSIONS
排除用逗号分隔的扩展名列表(例如:asp、jsp)
-f, --force-extensions
为每个wordlist条目添加扩展名。默认情况下dirsearch仅将%ext%关键字替换为扩展
- 字典设置
-w WORDLIST, --wordlists=WORDLIST
自定义Wordlist(用逗号分隔)
--prefixes=PREFIXES
为所有wordlist条目添加自定义前缀(分开按逗号)
--suffixes=SUFFIXES
将自定义后缀添加到所有wordlist条目,忽略目录(用逗号分隔)
--only-selected 移除路径的扩展名与选定的不同通过`-e`的(保留条目没有扩展名)
--remove-extensions
删除所有路径中的扩展(例如: admin.php -> admin)
-U, --uppercase Uppercase wordlist
-L, --lowercase Lowercase wordlist
-C, --capital Capital wordlist
- 一般设置
-t THREADS, --threads=THREADS
线程数
-r, --recursive 蛮力递归
--deep-recursive 对每个目录深度执行递归扫描(例如: api/users -> api/)
--force-recursive 每个找到的路径做递归蛮力,而不是只有路径以斜杠结尾
--recursion-depth=DEPTH
最大递归深度
--recursion-status=CODES
执行递归扫描的有效状态代码,支持范围(用逗号分隔)
--subdirs=SUBDIRS 扫描给定URL[s]的子目录(由逗号)
--exclude-subdirs=SUBDIRS
在递归过程中排除以下子目录扫描(用逗号分隔)
-i CODES, --include-status=CODES
包括状态代码,以逗号分隔,支持范围(例如:200,300-399)
-x CODES, --exclude-status=CODES
排除状态代码,用逗号分隔,支持范围(例如:301,500-599)
--exclude-sizes=SIZES
按大小排除响应,用逗号分隔(例如:123B,4KB)
--exclude-texts=TEXTS
按文本排除答复,用逗号分隔(例如:'not found'、'error')
--exclude-regexps=REGEXPS
用逗号分隔的正则表达式排除响应(例如:“not foun[a-z]{1}”,“^error$”)
--exclude-redirects=REGEXPS
通过重定向正则表达式或文本排除响应,用逗号分隔(例如:'https://okta.com/*')
--exclude-content=PATH
按此路径的响应内容排除响应
--skip-on-status=CODES
只要击中其中一个状态代码,就跳过目标,用逗号分隔,支持ranges
--minimal=LENGTH 最小响应长度
--maximal=LENGTH 最大响应长度
--max-time=SECONDS 扫描的最大运行时间
-q, --quiet-mode 安静模式
--full-url 输出中的完整URL(在安静模式)
--no-color 无彩色无彩色输出
- 请求设置
-m METHOD, --http-method=METHOD
HTTP方法(默认值:GET)
-d DATA, --data=DATA
HTTP请求数据
-H HEADERS, --header=HEADERS
HTTP请求头,支持多个标志(例如:-H 'Referer: example.com')
--header-list=FILE 文件包含HTTP请求头
-F, --follow-redirects
遵循HTTP重定向
--random-agent 为每个请求选择一个随机用户代理
--auth-type=TYPE 身份验证类型 (basic, digest, bearer, ntlm)
--auth=CREDENTIAL 身份验证凭证 (user:password or bearer token)
--user-agent=USERAGENT
--cookie=COOKIE
- 连接设置
--timeout=TIMEOUT 超时连接超时
-s DELAY, --delay=DELAY
请求之间的延迟
--proxy=PROXY 代理URL,支持HTTP和SOCKS代理(例如:localhost:8080,socks5://localhost:8088)
--proxy-list=FILE 文件包含代理服务器
--replay-proxy=PROXY
使用找到的路径重播的代理
--scheme=SCHEME 默认方案(对于原始请求或如果没有URL中的方案)
--max-rate=RATE 每秒最大请求数
--retries=RETRIES 重试失败请求的重试次数
-b, --request-by-hostname
默认情况下,dirsearch按IP请求速度。这个将强制dirsearch按主机名请求
--ip=IP 每当发生错误就退出
报告:
-o FILE, --output=FILE
输出文件
--format=FORMAT format报表格式(可用:simple、plain、json、xml,md,csv,html)