dirsearch是一个基于python3的命令行目录扫描工具,类似于御剑之类的工具,是一个基于Python的开源目录扫描工具,专门用于通过枚举Web服务器上的目录和文件来查找潜在的安全漏洞。它支持多种协议(如HTTP、HTTPS),并且能够处理响应状态码、重定向、时间延迟等多个场景,这使得它在处理复杂环境时也能表现出色。
安装:git clone https://github.com/maurosoria/dirsearch
dirsearch.py -h 帮助
一、基本用法
Dirsearch 的基本命令格式如下:
python dirsearch.py -u <目标URL> -e <扩展名>
- -u:指定要扫描的目标 URL。
- -e:指定要扫描的文件扩展名(例如 php,html,txt)。
示例
1.扫描一个网站:
python dirsearch.py -u http://example.com -e php,html
2.使用自定义字典: 如果你有一个自定义的字典文件,可以使用 -w 参数指定,探索隐藏的目录和文件:
python dirsearch.py -u http://example.com -w /path/to/your/wordlist.txt
此命令将使用自定义的字典文件(wordlist.txt)来扫描目标网站上的所有目录和文件。
3.启用详细输出: 使用 -v 参数可以启用详细模式,显示更多信息:
python dirsearch.py -u http://example.com -e php -v
4.输出结果到文件: 使用 -o 参数可以将结果输出到文件:
python dirsearch.py -u http://example.com -e php -o results.txt
5.使用代理: 如果需要通过代理进行扫描,可以使用 --proxy 参数:
python dirsearch.py -u http://example.com --proxy http://127.0.0.1:8080
6.对抗时间延迟和重定向
许多Web应用程序会在请求过于频繁时触发时间延迟机制,或在某些页面上使用重定向技术来混淆安全人员的扫描。Dirsearch允许用户自定义扫描的并发请求数量,并处理重定向。可以通过设置--timeout参数来应对网络延迟,或使用--max-rate限制扫描速率:
python3 dirsearch.py -u http://target.com --timeout=10 --max-rate=5
7.定制请求头和代理
有时,为了绕过目标网站的防火墙或限制规则,扫描请求需要伪装成普通用户的访问。Dirsearch提供了-H参数用于定制请求头,例如添加一个常见的User-Agent:
python3 dirsearch.py -u http://target.com -H "User-Agent: Mozilla/5.0"
此外,通过--proxy参数可以指定代理服务器,隐藏真实的IP地址。
8.输出格式及结果分析
在大规模渗透测试中,往往需要处理大量扫描结果,Dirsearch支持多种输出格式,方便后续的分析与自动化处理。例如,导出为CSV格式的命令如下:
python3 dirsearch.py -u http://target.com -e php,html -o output.csv --format=csv
二、其他常用选项
-
-u 指定网址 -e 指定网站语言 -t 指定线程 -w 指定字典 -r 递归目录(跑出目录后,继续跑目录下面的目录) --random-agents 使用随机UA(默认在db/uesr-agents.txt中,可以自己添加) -x 排除指定状态码 -s 置请求之间的延时(秒) -t:设置并发线程数,默认是 40。 --timeout:设置请求超时时间,单位为秒。 --exclude-status:排除特定的 HTTP 状态码(例如 404)。 --follow-redirects:跟随重定向。 -h, --help 查看帮助 -u URL, --url=URL 设置url -L URLLIST, --url-list=URLLIST 设置url列表 -e EXTENSIONS, --extensions=EXTENSIONS 网站脚本类型 -w WORDLIST, --wordlist=WORDLIST 设置字典 -l, --lowercase 小写 -f, --force-extensions 强制扩展字典里的每个词条 -s DELAY, --delay=DELAY 设置请求之间的延时 -r, --recursive Bruteforce recursively 递归地扫描 –scan-subdir=SCANSUBDIRS, --scan-subdirs=SCANSUBDIRS 扫描给定的url的子目录(用逗号隔开) –exclude-subdir=EXCLUDESUBDIRS, --exclude-subdirs=EXCLUDESUBDIRS 在递归过程中排除指定的子目录扫描(用逗号隔开) -t THREADSCOUNT, --threads=THREADSCOUNT 设置扫描线程 -x EXCLUDESTATUSCODES, --exclude-status=EXCLUDESTATUSCODES 排除指定的网站状态码(用逗号隔开) -c COOKIE, --cookie=COOKIE 设置cookie –ua=USERAGENT, --user-agent=USERAGENT 设置用户代理 -F, --follow-redirects 跟随地址重定向扫描 -H HEADERS, --header=HEADERS 设置请求头 –random-agents, --random-user-agents 设置随机代理 –timeout=TIMEOUT 设置超时时间 –ip=IP 设置代理IP地址 –proxy=HTTPPROXY, --http-proxy=HTTPPROXY 设置http代理。例如127.0.0.1:8080 –max-retries=MAXRETRIES 设置最大的重试次数 -b, --request-by-hostname 通过主机名请求速度,默认通过IP –simple-report=SIMPLEOUTPUTFILE 保存结果,发现的路径 –plain-text-report=PLAINTEXTOUTPUTFILE 保存结果,发现的路径和状态码 –json-report=JSONOUTPUTFILE 以json格式保存结果 注:(-和--可能存在错误!)
三、注意事项
- 在使用 Dirsearch 进行扫描时,请确保你有合法的授权,以避免违反法律法规。
- 适当配置扫描参数,以避免对目标服务器造成过大的负载。
通过以上步骤,你可以有效地使用 Dirsearch 进行目录和文件的枚举,帮助识别潜在的安全风险。
四、在实际安全工作中的重要性
- 目录和文件枚举:Dirsearch 可以帮助安全研究人员和渗透测试人员快速发现网站上的隐藏目录和文件。这对于识别潜在的攻击面非常重要,因为许多敏感文件和目录可能并不在网站的公开部分。
- 自动化扫描:Dirsearch 支持自动化扫描,可以通过自定义字典文件来提高扫描的效率和准确性。这使得安全人员能够在短时间内对大量目标进行扫描,节省了手动检查的时间。
- 支持多种协议:Dirsearch 支持 HTTP 和 HTTPS 协议,能够对不同类型的网站进行扫描。这种灵活性使得它适用于各种环境和应用程序。
- 集成与其他工具:Dirsearch 可以与其他安全工具集成使用,例如与 Burp Suite、Nmap 等工具结合,增强整体的安全测试能力。
- 发现安全漏洞:通过发现未授权的目录和文件,Dirsearch 可以帮助安全人员识别潜在的安全漏洞,例如配置错误、过时的文件或敏感信息泄露等。
- 提高安全意识:使用 Dirsearch 进行定期的安全扫描,可以帮助组织提高对潜在安全风险的意识,并采取相应的措施来加强安全防护。
总之,Dirsearch 是一个强大的目录和文件枚举工具,在渗透测试和安全评估中具有重要的应用价值,能够帮助安全专业人员更有效地识别和修复潜在的安全问题。