Dirsearch | 目录枚举神器 你真的会用吗?

admin 2025年1月12日01:02:16评论9 views字数 4840阅读16分8秒阅读模式

简介

Dirsearch是一个用 Python 编写的命令行工具,设计用于通过使用字典攻击的方式扫描Web服务器上的目录和文件。它可以帮助渗透测试人员、红队、安全研究员等发现服务器上未公开的资源和潜在漏洞。

使用

安装方法

KALI安装

  • 自带有
apt install dirsearch -y
Dirsearch | 目录枚举神器 你真的会用吗?

pip下载

pip install dirsearch
Dirsearch | 目录枚举神器 你真的会用吗?

Github下载

git clone https://github.com/maurosoria/dirsearch.gitcd dirsearchpip install -r requirements.txtpython dirsearch.py
Dirsearch | 目录枚举神器 你真的会用吗?

相关参数

基本格式

dirsearch -u <target_url> [options]

必选内容

  • -u指定目标url
  • -l指定url文件
  • -s扫描进度保存的会话文件(可不选,不指定默认不开启)

参数参考表

Mandatory(必选)
参数
说明
-u URL, --url=URL
目标 URL(s),可以使用多个标志指定多个 URL。
-l PATH, --url-file=PATH
URL 列表文件。
--stdin
从 STDIN 读取 URL(s)。
--cidr=CIDR
目标 CIDR。
--raw=PATH
从文件加载原始 HTTP 请求(使用 --scheme 标志设置协议)。
-s SESSION_FILE, --session=SESSION_FILE
会话文件。
--config=PATH
配置文件的完整路径,默认是 config.ini
Dictionary Settings(字典设置)
参数
说明
-w WORDLISTS, --wordlists=WORDLISTS
自定义字典(多个字典用逗号分隔)。
-e EXTENSIONS, --extensions=EXTENSIONS
扩展名列表(用逗号分隔,例如:php,asp)。
-f, --force-extensions
扩展名添加到每个字典项的末尾。默认情况下,dirsearch 只会替换 %EXT% 关键字为扩展名。
-O, --overwrite-extensions
使用 -e 指定的扩展名覆盖字典中的其他扩展名。
--exclude-extensions=EXTENSIONS
排除的扩展名列表(用逗号分隔)。
--remove-extensions
移除路径中的扩展名(例如 admin.php -> admin)。
--prefixes=PREFIXES
向所有字典项添加自定义前缀(用逗号分隔)。
--suffixes=SUFFIXES
向所有字典项添加自定义后缀(忽略目录,多个后缀用逗号分隔)。
-U, --uppercase
将字典中的词转换为大写。
-L, --lowercase
将字典中的词转换为小写。
-C, --capital
将字典中的词转换为首字母大写。
General Settings(通用设置)
参数
说明
-t THREADS, --threads=THREADS
设置线程数。
-r, --recursive
启用递归模式,扫描子目录路径。
--deep-recursive
在每个目录深度上都执行递归扫描(例如:api/users -> api/)。
--force-recursive
对每个找到的路径都执行递归扫描,不仅仅是目录。
-R DEPTH, --max-recursion-depth=DEPTH
设置最大递归深度。
--recursion-status=CODES
指定有效的状态码,用于递归扫描(支持范围,例如 200, 300-399)。
--subdirs=SUBDIRS
扫描指定 URL 的子目录(多个子目录用逗号分隔)。
--exclude-subdirs=SUBDIRS
排除指定子目录进行递归扫描(多个子目录用逗号分隔)。
-i CODES, --include-status=CODES
包含状态码,多个状态码用逗号分隔,支持范围(例如 200,300-399)。
-x CODES, --exclude-status=CODES
排除状态码,多个状态码用逗号分隔,支持范围(例如 301,500-599)。
--exclude-sizes=SIZES
排除某些响应大小的路径,多个大小用逗号分隔(例如 0B,4KB)。
--exclude-text=TEXTS
排除响应中包含指定文本的路径,可以使用多个标志。
--exclude-regex=REGEX
排除响应中匹配正则表达式的路径。
--exclude-redirect=STRING
排除响应中包含指定重定向 URL 的路径(例如 /index.html)。
--exclude-response=PATH
排除与此页面响应类似的路径,输入路径作为示例(例如 404.html)。
--skip-on-status=CODES
在遇到这些状态码时跳过目标,多个状态码用逗号分隔,支持范围。
--min-response-size=LENGTH
只扫描大于指定响应长度的路径(例如 100B4KB)。
--max-response-size=LENGTH
只扫描小于指定响应长度的路径(例如 100B4KB)。
--max-time=SECONDS
设置扫描的最大运行时间(秒)。
--exit-on-error
一旦遇到错误则退出扫描。
Request Settings(请求设置)
参数
说明
-m METHOD, --http-method=METHOD
设置 HTTP 请求方法,默认为 GET
-d DATA, --data=DATA
设置 HTTP 请求的正文数据,通常用于 POST 请求。
--data-file=PATH
从文件加载 HTTP 请求数据。
-H HEADERS, --header=HEADERS
设置 HTTP 请求头部,可以使用多个标志。
--header-file=PATH
从文件加载 HTTP 请求头部。
-F, --follow-redirects
跟随 HTTP 重定向。
--random-agent
每个请求使用随机的 User-Agent。
--auth=CREDENTIAL
设置身份验证凭证,格式为 user:password 或 bearer token
--auth-type=TYPE
设置身份验证类型(如:basicdigestbearerntlmjwtoauth2)。
--cert-file=PATH
从文件加载客户端证书。
--key-file=PATH
从文件加载客户端证书的私钥(未加密)。
--user-agent=USER_AGENT
设置自定义 User-Agent。
--cookie=COOKIE
设置 HTTP 请求的 Cookie。
Connection Settings(连接设置)
参数
说明
--timeout=TIMEOUT
设置连接超时。
--delay=DELAY
设置请求之间的延迟。
--proxy=PROXY
设置代理 URL(HTTP/SOCKS),可以使用多个标志。
--proxy-file=PATH
从文件加载代理服务器。
--proxy-auth=CREDENTIAL
设置代理认证凭证。
--replay-proxy=PROXY
使用代理回放找到的路径。
--tor
使用 Tor 网络作为代理。
--scheme=SCHEME
设置协议(当 URL 中没有协议时使用)。
--max-rate=RATE
设置每秒最大请求数。
--retries=RETRIES
设置失败请求的重试次数。
--ip=IP
设置服务器的 IP 地址。
Advanced Settings(高级设置)
参数
说明
--crawl
在响应中抓取新的路径。
View Settings(查看设置)
参数
说明
--full-url
在输出中显示完整的 URL(在静默模式下自动启用)。
--redirects-history
显示重定向历史。
--no-color
禁用彩色输出。
-q, --quiet-mode
静默模式,减少输出。
Output Settings(输出设置)
参数
说明
-o PATH, --output=PATH
设置输出文件路径。
--format=FORMAT
设置报告格式(可选:simpleplainjsonxmlmdcsvhtmlsqlite)。
--log=PATH
设置日志文件路径。

基本参数使用

测试站点

  • 我这里使用我的博客站点进行测试,为了速度我本地起了一个。Dirsearch | 目录枚举神器 你真的会用吗?

指定站点普通扫描

  • 默认指定字典,扫描的后缀为全部。
dirsearch -u localhost:4000
Dirsearch | 目录枚举神器 你真的会用吗?

递归扫描

  • 第一次扫描可以发现我有一些路径例如:books,可以使用-r参数可以设置递扫描,-t设置扫描线程数。
dirsearch -u localhost:4000 -r -t 25
Dirsearch | 目录枚举神器 你真的会用吗?

排除状态码

  • 第一次扫描看到有一些301的状态码,下面使用-x参数排除掉多个格式的话可以用,分开。
dirsearch -u localhost:4000 -t 25 -x 301
Dirsearch | 目录枚举神器 你真的会用吗?

指定状态码

  • 有排除肯定有指定了,使用-i参数指定状态码,多个状态码用,分隔。
dirsearch -u localhost:4000 -t 25 -i 200
Dirsearch | 目录枚举神器 你真的会用吗?

指定扫描格式

  • 这个可以根据站点的环境来判断,像我的博客是静态部署的。你扫一些jsp肯说是没有的了。字典一下子少了,原本是一万多的。如果多个格式的话可以用,分开。
dirsearch -u localhost:4000 -t 25 -e html
Dirsearch | 目录枚举神器 你真的会用吗?

排除响应包大小

  • 这个对于真实站点信息收集时有用,部分站点访问一个不存在的页面时会返回一个统一的页面,具体解释看下一级标题详讲解
dirsearch -u https://www.xenoecho.us.kg --exclude-sizes=162B
Dirsearch | 目录枚举神器 你真的会用吗?
为什么排除
  • 注意看我两个不同路径的页面返回的都是我自定义的页面也就是自定义的404Dirsearch | 目录枚举神器 你真的会用吗?
  • 而且响应的包大小都是一样,那么就可以使用--exclude-sizes排除掉这些404页面或者简单的统一页面。Dirsearch | 目录枚举神器 你真的会用吗?

设置字典

  • 目录扫描的本质其实还是信息收集,后续可以根据自己收集到的一些信息制作字典,例如这个网站的文件名为website,那么可以设置个websaite的名压缩包后缀,或者使用一些常见的字典,如搜索引擎的网站地图、RSS等。
#这里就随便指定一个字典,具体还有很多参数就不一一示范了dirsearch -u http://localhost:4000/ -w db.txt
Dirsearch | 目录枚举神器 你真的会用吗?

设置代理

  • 这里不代理提供方法,做个示例,--timeout设置个超时时间。
dirsearch -u https://www.xenoecho.us.kg --proxy http://127.0.0.1:10101 --timeout=5
Dirsearch | 目录枚举神器 你真的会用吗?

设置请求头| IP伪造

  • HTTP的请求包中有一个请求头X-Forwarded-For是包含请求IP的,当然这种方式无法欺骗链路层这些,只能欺骗应用层的一些验证。
#192.168.1.100为伪造的IPdirsearch -u https://www.xenoecho.us.kg/ -H "X-Forwarded-For: 192.168.1.100"
Dirsearch | 目录枚举神器 你真的会用吗?

设置IP服务器|绕过CDN请求(存疑)

  • 这个参数我感觉很有意思,我可以设置指定的IP请求啊,为什么还要在设置个IP呢,虚拟主机来说也没必要,我感觉大概率可能是针对有CDN的站点,不过我不确定,这里给个示范。后面有错欢迎指出
#查看我解析的地址,然后指定服务器IPdirsearch -u https://www.xenoecho.us.kg/ --ip=172.67.213.41
Dirsearch | 目录枚举神器 你真的会用吗?

文件另存为

  • 这个参数就不多说了
dirsearch -u http://localhost:4000/ -o 1.txt
Dirsearch | 目录枚举神器 你真的会用吗?

总结

总体来看Dirsearch已经可以说是很强大的目录扫描工具了,集成大部分扫描中会遇到的所有问题的解决参数,只不过自带的字典肯定不够看的,需要指定字典来完善他的功能。

字典

自己收集的一些字典 关注公众号回复20250111获取

附录

 

 

原文始发于微信公众号(泷羽Sec-小篮子):Dirsearch | 目录枚举神器 你真的会用吗?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月12日01:02:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Dirsearch | 目录枚举神器 你真的会用吗?https://cn-sec.com/archives/3620650.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息