简介
❝
Dirsearch是一个用 Python 编写的命令行工具,设计用于通过使用字典攻击的方式扫描Web服务器上的目录和文件。它可以帮助渗透测试人员、红队、安全研究员等发现服务器上未公开的资源和潜在漏洞。
使用
安装方法
KALI安装
-
自带有
apt install dirsearch -y
pip下载
pip install dirsearch
Github下载
git clone https://github.com/maurosoria/dirsearch.gitcd dirsearchpip install -r requirements.txtpython dirsearch.py
相关参数
基本格式
dirsearch -u <target_url> [options]
必选内容
-
-u
指定目标url -
-l
指定url文件 -
-s
扫描进度保存的会话文件(可不选,不指定默认不开启)
参数参考表
Mandatory(必选)
|
|
---|---|
-u URL, --url=URL |
|
-l PATH, --url-file=PATH |
|
--stdin |
|
--cidr=CIDR |
|
--raw=PATH |
--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 |
|
--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 |
/index.html )。 |
--exclude-response=PATH |
404.html )。 |
--skip-on-status=CODES |
|
--min-response-size=LENGTH |
100B 、4KB )。 |
--max-response-size=LENGTH |
100B 、4KB )。 |
--max-time=SECONDS |
|
--exit-on-error |
|
Request Settings(请求设置)
|
|
---|---|
-m METHOD, --http-method=METHOD |
GET 。 |
-d DATA, --data=DATA |
POST 请求。 |
--data-file=PATH |
|
-H HEADERS, --header=HEADERS |
|
--header-file=PATH |
|
-F, --follow-redirects |
|
--random-agent |
|
--auth=CREDENTIAL |
user:password 或 bearer token 。 |
--auth-type=TYPE |
basic 、digest 、bearer 、ntlm 、jwt 、oauth2 )。 |
--cert-file=PATH |
|
--key-file=PATH |
|
--user-agent=USER_AGENT |
|
--cookie=COOKIE |
|
Connection Settings(连接设置)
|
|
---|---|
--timeout=TIMEOUT |
|
--delay=DELAY |
|
--proxy=PROXY |
|
--proxy-file=PATH |
|
--proxy-auth=CREDENTIAL |
|
--replay-proxy=PROXY |
|
--tor |
|
--scheme=SCHEME |
|
--max-rate=RATE |
|
--retries=RETRIES |
|
--ip=IP |
|
Advanced Settings(高级设置)
|
|
---|---|
--crawl |
|
View Settings(查看设置)
|
|
---|---|
--full-url |
|
--redirects-history |
|
--no-color |
|
-q, --quiet-mode |
|
Output Settings(输出设置)
|
|
---|---|
-o PATH, --output=PATH |
|
--format=FORMAT |
simple 、plain 、json 、xml 、md 、csv 、html 、sqlite )。 |
--log=PATH |
|
基本参数使用
测试站点
-
我这里使用我的博客站点进行测试,为了速度我本地起了一个。
指定站点普通扫描
-
默认指定字典,扫描的后缀为全部。
dirsearch -u localhost:4000
递归扫描
-
第一次扫描可以发现我有一些路径例如: books
,可以使用-r
参数可以设置递扫描,-t
设置扫描线程数。
dirsearch -u localhost:4000 -r -t 25
排除状态码
-
第一次扫描看到有一些 301
的状态码,下面使用-x
参数排除掉多个格式的话可以用,
分开。
dirsearch -u localhost:4000 -t 25 -x 301
指定状态码
-
有排除肯定有指定了,使用 -i
参数指定状态码,多个状态码用,
分隔。
dirsearch -u localhost:4000 -t 25 -i 200
指定扫描格式
-
这个可以根据站点的环境来判断,像我的博客是静态部署的。你扫一些 jsp
肯说是没有的了。字典一下子少了,原本是一万多的。如果多个格式的话可以用,
分开。
dirsearch -u localhost:4000 -t 25 -e html
排除响应包大小
-
这个对于真实站点信息收集时有用,部分站点访问一个不存在的页面时会返回一个统一的页面,具体解释看下一级标题详讲解
dirsearch -u https://www.xenoecho.us.kg --exclude-sizes=162B
为什么排除
-
注意看我两个不同路径的页面返回的都是我自定义的页面也就是自定义的404 -
而且响应的包大小都是一样,那么就可以使用 --exclude-sizes
排除掉这些404页面或者简单的统一页面。
设置字典
-
目录扫描的本质其实还是信息收集,后续可以根据自己收集到的一些信息制作字典,例如这个网站的文件名为 website
,那么可以设置个websaite
的名压缩包后缀,或者使用一些常见的字典,如搜索引擎的网站地图、RSS等。
#这里就随便指定一个字典,具体还有很多参数就不一一示范了dirsearch -u http://localhost:4000/ -w db.txt
设置代理
-
这里不代理提供方法,做个示例, --timeout
设置个超时时间。
dirsearch -u https://www.xenoecho.us.kg --proxy http://127.0.0.1:10101 --timeout=5
设置请求头| 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"
设置IP服务器|绕过CDN请求(存疑)
-
这个参数我感觉很有意思,我可以设置指定的IP请求啊,为什么还要在设置个IP呢,虚拟主机来说也没必要,我感觉大概率可能是针对有 CDN
的站点,不过我不确定,这里给个示范。后面有错欢迎指出
#查看我解析的地址,然后指定服务器IPdirsearch -u https://www.xenoecho.us.kg/ --ip=172.67.213.41
文件另存为
-
这个参数就不多说了
dirsearch -u http://localhost:4000/ -o 1.txt
总结
❝
总体来看Dirsearch已经可以说是很强大的目录扫描工具了,集成大部分扫描中会遇到的所有问题的解决参数,只不过自带的字典肯定不够看的,需要指定字典来完善他的功能。
字典
自己收集的一些字典 关注公众号回复20250111获取
附录
原文始发于微信公众号(泷羽Sec-小篮子):Dirsearch | 目录枚举神器 你真的会用吗?
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论