【web小工具】dirsearch 安装,用法,例题
原文链接:21.dirsearch:Web 路径扫描工具-ZEEKLOG博客
有错误请各位大佬多多指教~~~
一、项目介绍
dirsearch 是一款高效、多线程的 Web 路径扫描工具,专为渗透测试人员和网络安全研究人员设计,用于发现目标网站的隐藏目录、敏感文件及未授权接口。其支持自定义字典、代理配置、请求头伪装等功能,适用于红队渗透、漏洞挖掘及资产测绘等场景。
1.1 核心功能
多线程扫描:默认 20 线程,可自定义调整以提高效率。
智能错误处理:自动过滤重复状态码(如 404),降低误报率。
灵活扩展支持:
支持自定义字典(如 -w 指定字典文件)。
支持多种扩展名扫描(如 -e php,asp,aspx)。
结果输出:生成可读性强的报告(TXT/JSON/CSV),便于后续分析。
绕过检测:支持随机 User-Agent、代理池、请求延迟等隐蔽扫描策略。
1.2 适用场景
红队渗透:快速定位网站后台、敏感文件(如 admin.php、backup.zip)。
漏洞验证:发现未授权访问的 API 接口(如 /api/v1/users)。
资产梳理:扫描企业网站的暴露面资产(如遗留测试页面)。
二、安装教程


输入 PIP3 install DirSearch
输入pip install --upgrade -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
三、基础使用教程
语法及参数
输入python dirsearch.py -h得到dirsearch帮助
回显如下:
用法:dirsearch.py [-u|--url] 目标 [-e|--extensions] 扩展名 [选项] 选项: --version 显示程序的版本号并退出 -h, --help 显示此帮助消息并退出 必需: -u URL, --url=URL 目标URL,可以使用多个选项指定多个目标URL -l PATH, --urls-file=PATH URL列表文件 --stdin 从标准输入读取URL --cidr=CIDR 目标CIDR --raw=PATH 从文件加载原始HTTP请求(使用'--scheme'标志设置方案) -s SESSION\_FILE, --session=SESSION\_FILE 会话文件 --config=PATH 配置文件路径(默认为'DIRSEARCH\_CONFIG'环境变量,否则为'config.ini') 字典设置: -w WORDLISTS, --wordlists=WORDLISTS 单词列表文件或包含单词列表文件的目录(以逗号分隔) -e EXTENSIONS, --extensions=EXTENSIONS 扩展名列表,以逗号分隔(例如:php,asp) -f, --force-extensions 在每个单词列表条目的末尾添加扩展名。默认情况下,dirsearch只替换%EXT%关键字为扩展名。 -O, --overwrite-extensions 使用指定的扩展名覆盖单词列表中的其他扩展名(通过'-e'选择) --exclude-extensions=EXTENSIONS 排除的扩展名列表,以逗号分隔(例如:asp,jsp) --remove-extensions 删除所有路径中的扩展名(例如:admin.php -> admin) --prefixes=PREFIXES 将自定义前缀添加到所有单词列表条目中(以逗号分隔) --suffixes=SUFFIXES 将自定义后缀添加到所有单词列表条目中,忽略目录(以逗号分隔) -U, --uppercase 单词列表转为大写 -L, --lowercase 单词列表转为小写 -C, --capital 单词首字母大写 通用设置: -t THREADS, --threads=THREADS 线程数 -r, --recursive 递归地进行强制破解 --deep-recursive 在每个目录深度上执行递归扫描(例如:api/users -> api/) --force-recursive 对找到的每个路径执行递归强制破解,而不仅仅是目录 -R DEPTH, --max-recursion-depth=DEPTH 最大递归深度 --recursion-status=CODES 用于执行递归扫描的有效状态码,支持范围(以逗号分隔) --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 响应的最小长度 --max-response-size=LENGTH 响应的最大长度 --max-time=SECONDS 扫描的最大运行时间 --exit-on-error 发生错误时退出 请求设置: -m METHOD, --http-method=METHOD HTTP请求方法(默认为GET) -d DATA, --data=DATA HTTP请求数据 --data-file=PATH 包含HTTP请求数据的文件 -H HEADERS, --header=HEADERS HTTP请求标头,可以使用多个标志 --headers-file=PATH 包含HTTP请求标头的文件 -F, --follow-redirects 跟随HTTP重定向 --random-agent 每个请求选择一个随机User-Agent --auth=CREDENTIAL 认证凭据(例如:user:password或bearer token) --auth-type=TYPE 认证类型(basic、digest、bearer、ntlm、jwt) --cert-file=PATH 包含客户端证书的文件 --key-file=PATH 包含客户端证书私钥的文件(未加密) --user-agent=USER\_AGENT --cookie=COOKIE 连接设置: --timeout=TIMEOUT 连接超时时间 --delay=DELAY 请求之间的延迟 -p PROXY, --proxy=PROXY 代理URL(HTTP/SOCKS),可以使用多个标志 --proxies-file=PATH 包含代理服务器的文件 --proxy-auth=CREDENTIAL 代理认证凭据 --replay-proxy=PROXY 用于重放已发现路径的代理 --tor 使用Tor网络作为代理 --scheme=SCHEME 原始请求的协议或URL中没有协议时使用的协议(默认为自动检测) --max-rate=RATE 每秒请求数最大值 --retries=RETRIES 失败请求的重试次数 --ip=IP 服务器IP地址 高级设置: --crawl 在响应中爬取新路径 显示设置: --full-url 在输出中显示完整URL(在静默模式下自动启用) --redirects-history 显示重定向历史记录 --no-color 不使用彩色输出 -q, --quiet-mode 安静模式 输出设置: -o PATH/URL, --output=PATH/URL 输出文件或MySQL/PostgreSQL数据库URL(格式: scheme://[username:password@]host[:port]/database- name) --format=FORMAT 报告格式(可用:simple、plain、json、xml、md、csv、html、 sqlite、mysql、postgresql) --log=PATH 日志文件 有关示例配置文件,请参见“config.ini” 常见Payload
3.1 常用命令参数
参数 | 功能说明 |
| 指定目标 URL(http://example.com) |
| 指定自定义字典文件(默认使用 dictionaries/common.txt) |
| 扫描指定扩展名(如 php,html,zip) |
| 设置线程数(默认 20,建议不超过 50) |
| 设置请求超时时间(默认 30 秒) |
| 启用随机 User-Agent |
3.2 基础扫描示例
1.扫描单个目标:
【扫描单个URL,并限制线程数和扩展名:】
python dirsearch.py -u http://example.com -e php,html 用于对目标网站进行目录/文件暴力枚举
参数 | 含义 |
| 指定目标URL:需扫描的网站地址(替换为实际测试的网址)。 |
| 指定扩展名:枚举以 |
命令作用
DirSearch会基于内置字典,尝试访问目标网站下的常见目录(如/admin/、/login/)和
指定扩展名的文件,帮助发现网站隐藏的资源(如后台入口、配置文件等)。
示例输出
执行命令后,工具会输出类似结果:
[10:00:00] Starting scan... [10:00:01] 200 - 123B /index.html [10:00:03] 403 - 456B /admin/ [10:00:05] 200 - 789B /config.php200:文件/目录存在且可访问;403:目录存在但无访问权限;404:资源不存在(默认不显示)。
注意事项
- 合法合规:仅可对授权目标使用,未经允许扫描他人网站可能违反法律法规。
- 字典优化:默认字典位于
dirsearch-master/db/dicc.txt,可根据需求替换为更针对性的字典。 - 速度控制:可添加
-t 10(设置10个线程)或-d 1(延迟1秒)避免触发目标网站的防护机制。
python dirsearch.py -u http://example.com -t 10 -e php,asp --exclude-extensions=html 该命令将对 http://example.com 进行目录扫描,
使用最多 10 个线程并仅检查扩展名为 php 和 asp 的路径,同时排除扩展名为 html 的路径。
2.从URL列表文件中批量扫描:
python dirsearch.py -l urls.txt -t 5 -e php该命令将从 urls.txt 文件中读取目标URL列表,
并使用最多 5 个线程对每个URL进行目录扫描,仅检查扩展名为 php 的路径。
【若有指定特定的URL-u http://example.com,单一URL,】
【批量的URL,,-l urls.txt】
3.使用自定义字典:
【使用自定义字典和深度递归扫描】
python dirsearch.py -u http://example.com -w /path/to/custom_wordlist.txt 这是DirSearch的自定义字典扫描命令,用于指定自定义的目录/文件字典对目标网站进行暴力枚举,具体参数含义如下:
核心参数解析
参数 | 含义 |
| 指定目标URL:需扫描的网站地址(替换为实际测试的网址)。 |
| 指定自定义字典:使用用户提供的字典文件 ( |
命令作用
DirSearch默认使用内置字典(dirsearch-master/db/dicc.txt),
而-w参数允许你使用更贴合目标场景的自定义字典(如针对特定CMS、行业的专用字典),提高扫描效率和准确性。
自定义字典格式要求
字典文件需为纯文本格式,每行一个目录或文件名,示例:
admin login index.php config.html /api/v1- 可包含目录(如
admin/)、文件(如index.php)或带路径的文件(如api/v1/login)。 - 若需指定扩展名,需在字典中直接写完整文件名(如
admin.php),或搭配-e参数
(如-e php会自动为字典条目添加.php后缀)。
示例场景
假设你有一个针对WordPress的字典wordpress.txt,内容包含wp-admin/、
wp-config.php等,执行命令:
python dirsearch.py -u http://example.com -w wordpress.txt工具会优先使用wordpress.txt中的条目扫描,更精准地发现WordPress网站的后台入口或配置文件。
注意事项
- 字典来源:可从GitHub(如
SecLists项目)下载行业通用字典,或根据目标网站特征(如CMS类型、技术栈)自制字典。 - 性能优化:字典越大,扫描时间越长,建议根据目标规模选择合适的字典。
- 合规性:仅可对授权目标使用,避免未经允许的扫描行为 ⚠️。
4.过滤状态码:
python dirsearch.py -u http://example.com --exclude-status 403,500 这是DirSearch的过滤状态码扫描命令,用于在目录枚举时排除指定HTTP状态码的结果,让输出更聚焦于有效资源,具体参数含义如下:
核心参数解析
参数 | 含义 |
| 指定目标URL:需扫描的网站地址(替换为实际测试的网址)。 |
| 排除状态码:扫描结果中不显示HTTP状态码为
|
命令作用
默认情况下,DirSearch会显示所有扫描到的状态码(如200、403、404等)。
使用--exclude-status可过滤掉无关结果,仅保留更有价值的条目(如200表示资源存在、301表示重定向),减少干扰。
常见状态码过滤场景
403:目录/文件存在但无访问权限(如/admin/),过滤后可避免输出大量无权限的目录。500:服务器端错误(可能是扫描触发了网站防护),过滤后可减少无效报错信息。- 也可搭配其他状态码(如
--exclude-status 404,400)过滤不存在或无效的请求。
示例输出对比
- 未过滤时:可能输出大量
403/500条目,干扰有效结果。 - 过滤后:仅显示
200/301等有效状态码,示例:
[10:00:00] Starting scan... [10:00:01] 200 - 123B /index.html [10:00:03] 301 - 456B /blog/ → /blog/index.php注意事项
- 状态码需用英文逗号分隔,无空格(如
403,500而非403, 500)。 - 若需保留特定状态码,可搭配
--include-status参数(如--include-status 200,301)。
该命令适用于需要精简扫描结果的场景,让有效信息更突出 ✅。
5.在请求中使用自定义HTTP头:
python dirsearch.py -u http://example.com -H "X-Custom-Header: Value" -H "Authorization: Bearer token"该命令将对 http://example.com 进行目录扫描,并在每个请求中包含自定义的HTTP头,
如 X-Custom-Header 和 Authorization。
这是DirSearch的带自定义请求头扫描命令,用于在扫描时向目标网站添加自定义HTTP请求头,以模拟特定场景或绕过防护,具体参数含义如下:
核心参数解析
参数 | 含义 |
| 指定目标URL:需扫描的网站地址(替换为实际测试的网址)。 |
| 添加自定义请求头:向每个扫描请求中加入
(可重复使用 |
| 添加授权请求头:示例中加入了Bearer Token授权头,用于访问需要身份验证的资源 (如登录后的后台)。 |
命令作用
HTTP请求头是客户端向服务器传递的附加信息,DirSearch默认使用简单的请求头
(如User-Agent: DirSearch/0.4.2)。
通过-H参数添加自定义头,可实现以下场景:
- 模拟浏览器:
添加User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36,避免被服务器识别为爬虫。
- 身份验证:
添加Authorization: Bearer token或Cookie: sessionid=xxx,
扫描需要登录才能访问的目录(如/dashboard/)。
- 绕过防护:
部分网站会检查特定请求头(如Referer、X-Requested-With),添加后可绕过简单的WAF规则。
示例场景
假设目标网站需要登录后才能访问/admin/,你可先通过浏览器登录,获取Cookie后执行命令:
python dirsearch.py -u http://example.com -H "Cookie: PHPSESSID=abc123def456"此时DirSearch会携带该Cookie扫描,可能发现登录后的隐藏目录。
注意事项
- 请求头格式:每个
-H后需用双引号包裹完整的键值对(如"Key: Value"),键和值之间用冒号+空格分隔。 - 敏感信息:若添加
Authorization或Cookie等敏感头,需确保命令在安全环境中执行,避免泄露凭证。 - 兼容性:部分网站会严格验证请求头格式,错误的头可能导致扫描失败(如缺少空格、拼写错误)。
该命令适用于需要定制请求特征的扫描场景,需结合目标网站的防护机制灵活使用 ✅。
6.指定线程数和延迟时间:
python dirsearch.py -u http://example.com -t 20 --delay 0.5上述命令将使用20个线程并设置每个请求之间的延迟为0.5秒。
7.使用自定义的请求头和超时时间:
python dirsearch.py -u http://example.com -H "Custom-Header: value" --timeout 10这个命令将在每个请求中添加一个自定义的请求头 “Custom-Header: value”,并将超时时间设置为10秒。
8.包含和排除特定状态码:
python dirsearch.py -u http://example.com -i 200,302 -x 404,500这是DirSearch的精准状态码筛选命令,通过包含(-i)和排除(-x)特定HTTP状态码,让扫描结果仅保留你关注的有效资源,具体参数含义如下:
核心参数解析
参数 | 含义 |
| 指定目标URL:需扫描的网站地址(替换为实际测试的网址)。 |
| 仅显示状态码:扫描结果中只保留HTTP状态码为
|
| 排除状态码:扫描结果中过滤掉HTTP状态码为
|
命令作用
通过-i和-x组合,实现双重筛选:
-i(Include):主动“保留”你关心的状态码
(如200表示文件存在、302可能指向后台登录页)。
-x(Exclude):被动“过滤”无关/错误状态码
(如404是无效路径、500是服务器异常)。
最终输出仅显示**同时满足“被包含”且“未被排除”**的结果,极大减少干扰信息。
示例输出
执行命令后,仅显示符合条件的结果:
[14:30:00] Starting scan... [14:30:02] 200 - 200B /dashboard.html # 存在的后台页面 [14:30:05] 302 - 150B /login → /auth # 重定向到登录接口(404/500的条目会被自动过滤,不显示在结果中)
注意事项
- 参数顺序:
-i和-x无先后要求,但需确保状态码用英文逗号分隔(无空格)。 - 优先级:
-i的优先级高于-x,即先筛选-i包含的状态码,再从其中排除-x的状态码。 - 灵活组合:可根据目标调整状态码(如
-i 200,301保留永久重定向,-x 403排除无权限目录)。
该命令适用于需要高度精准扫描的场景,让结果更聚焦于有效资源 ✅。
9.通过代理扫描:
python dirsearch.py -u http://example.com --proxy http://127.0.0.1:8080 --proxy http://127.0.0.1:8080代理配置参数,用于让工具通过指定的代理服务器发送请求
核心作用
让工具的所有网络请求先转发到代理服务器(127.0.0.1:8080),再由代理服务器发送到目标网站。常用于隐藏真实IP、抓包分析或突破网络限制。
参数拆解
--proxy:工具的代理参数标识(不同工具可能用-x或--proxies,但功能一致)。http://127.0.0.1:8080:代理服务器的地址和端口:127.0.0.1:本地回环地址(表示代理服务器运行在当前设备上)。8080:代理服务监听的端口(常见代理端口还有1080、8888)。
10.设置请求延迟:
python dirsearch.py -u http://example.com --delay 2 # 单位:秒 11.随机 User-Agent:
python dirsearch.py -u http://example.com --random-agent 用于对目标网站进行目录/文件扫描,
--random-agent 启用随机User-Agent功能,每次请求自动切换不同的浏览器标识(如Chrome、Firefox)
DirSearch是一款目录暴力扫描工具,通过猜测常见的目录名(如admin/、login.php)或文件名,检测目标网站是否存在未公开的资源(如后台页面、敏感文件)。
--random-agent的作用是避免被目标网站的WAF(Web应用防火墙)识别为爬虫,提高扫描成功率。
12. 递归扫描与深度控制
python dirsearch.py -u http://example.com --recursive -R 3 # 递归深度 3 DirSearch的递归目录扫描命令,用于深度探索目标网站的目录结构,
参数 | 功能说明 |
| 启用递归扫描(缩写 |
| 设置递归深度为3( |
默认DirSearch仅扫描根目录下的一级目录(如/admin、/login),而递归扫描会逐层深入:
- 深度1:扫描根目录(
/)下的所有目录(如/dir1)。 - 深度2:进入
/dir1,扫描其下的子目录(如/dir1/subdir1)。 - 深度3:进入
/dir1/subdir1,扫描其下的子目录(如/dir1/subdir1/subsubdir1),达到深度3后停止。
使用场景
适用于目标网站存在多层嵌套目录的情况(如/api/v1/user),通过递归扫描可发现更深层的敏感资源(如后台接口、配置文件)。
python dirsearch.py -u http://example.com -w custom-wordlist.txt -r --deep-recursive该命令将对 http://example.com 进行目录扫描,使用自定义的单词列表文件 custom-wordlist.txt,并启用深度递归扫描,即在每个目录的所有深度上执行递归扫描。
13.导出 JSON 报告:
python dirsearch.py -u http://example.com -o report.json --format json 是DirSearch的扫描结果导出命令,用于将扫描数据以JSON格式保存到指定文件,具体含义如下:
【即为导出,以什么格式,什么路径】
参数拆解
参数 | 功能说明 |
| 指定输出文件路径(
|
| 设置输出格式为JSON(默认是TXT),确保结果以结构化的JSON格式存储。 |
核心作用
DirSearch默认将结果输出到终端(控制台),-o和--format参数的组合用于:
- 持久化保存:避免终端关闭后丢失扫描结果。
- 结构化分析:JSON格式便于后续用Python、Excel等工具自动化解析(如统计状态码分布、提取存在的目录)。
- 报告生成:可将JSON转换为HTML/PDF等格式,用于安全测试报告。
JSON结果结构示例
生成的report.json通常包含以下核心字段(以单个结果为例):
{ "url": "http://example.com/admin", "status": 200, "content-length": 1234, "redirect": "", "method": "GET", "response-time": 0.5 }status:HTTP状态码(200=存在,403=权限拒绝,301=重定向)。content-length:响应内容大小(可辅助判断是否为有效页面)。response-time:请求耗时(反映目标服务器性能)。"redirect": ""表示当前请求的URL没有发生重定向
状态码 |
| 说明 |
200 |
| 目录/文件直接存在 |
301 |
| 永久重定向到新地址 |
302 |
| 临时重定向(如需要登录) |
扩展用法
- 多格式导出:DirSearch支持
txt、json、xml等格式,如--format xml可导出XML报告。 - 终端+文件双输出:默认
-o会覆盖终端输出,若需同时显示,可加--full-url参数。
注意事项
- 文件覆盖:若
report.json已存在,会被直接覆盖,建议扫描前备份旧文件。 - 权限问题:确保当前目录有写入权限(如Linux需
chmod授权)。 - 结果解析:可使用Python快速读取JSON结果,示例代码:
import json with open("report.json", "r") as f: results = json.load(f) for res in results: if res["status"] == 200: print(f"存在目录:{res['url']}")该命令是DirSearch扫描后结果留存与分析的关键步骤 📊。
常见状态码含义
状态码 | 含义 | 场景价值 | 使用场景 |
| 成功请求 | 【大概率就是,成功巴拉巴拉了】 直接发现存在的文件/目录(如 | |
| 临时重定向 | 请求的资源暂时被移动到新位置 服务器返回302时,会通过 浏览器会自动跳转到该URL,但原始URL仍有效(未来请求需继续使用原地址)。 新的临时URL 可能指向登录页 (如 不缓存重定向,每次请求原URL | 登录验证: 未登录用户访问需权限的页面时,被重定向到登录页。 临时路径调整: 接口或页面临时迁移,用302兼容旧请求。 负载均衡: 临时将请求导向其他服务器分摊流量。 |
| 永久重定向 | 永久迁移,原URL失效 缓存重定向,后续直接访问新URL | |
| 严格保持原方法 | HTTP 307是临时重定向状态码,明确要求客户端严格保留原请求的方法和请求体,通过 无论原请求是POST、PUT还是DELETE,重定向时方法和请求体(如表单数据、上传文件)完全保留。 |
|
| 强制转为GET | HTTP 303是临时重定向状态码, 要求客户端必须使用GET方法访问 无论原请求是POST、PUT还是DELETE,重定向时强制转为GET,适合需要“结果展示”的场景 |
|
| 访问页面的次数过于频繁 | 访问页面的次数过于频繁错误代码429也是网页中经常见的错误,是因为点击该网页频率过高。 实际开发中遇到的,客户端收到429错误,以为是服务端接口逻辑问题,实际是sentinel限流了 //限流问题 | |
| 错误请求 | HTTP状态码400表示"错误请求"。它是一种客户端错误状态码,表示服务器无法理解请求的语法或参数。当服务器收到一个无效的请求时,通常会返回400错误码。这可能是由于请求中缺少必要的参数、参数格式错误、非法字符、身份验证问题或其他语法错误所导致的。如果你遇到了400错误,你可以检查请求的参数和语法是否正确,并尝试修复问题。 | |
| 权限不够 | HTTP 403状态码的完整表述是"403 Forbidden", 中文译为"禁止访问"(权限不够) | |
| 资源不存在 | 【常见报错的破东西】 无效路径,过滤后避免输出大量无意义结果。 | |
| 服务器错误 | 是HTTP协议中的状态码,表示服务器在处理请求时遇到意外故障,无法完成请求。 它是服务器端的通用错误提示,不指向具体问题,需结合日志排查。 服务器返回500时,意味着服务端自身出错(如代码崩溃、配置错误),而非客户端请求有误。浏览器通常显示“Internal Server Error”,但不暴露具体细节(避免泄露敏感信息)。 扫描触发网站异常,过滤后减少报错干扰。 |
给一道示例题 [第一章 web入门]常见的搜集
题目

尝试?
乍一看,无头绪,且浏览了本网页的源代码,看不懂。。。
利用dirsearch搜一下信息?
一、基础扫描命令(核心用法)
最常用的基础命令格式:
python dirsearch.py -u http://目标网址 -e 后缀名-u:指定目标URL(如http://192.168.1.4)。-e:指定文件后缀(如php、txt,或用*扫描所有常见后缀)。
示例:
扫描目标网站的PHP文件和目录:
python dirsearch.py -u http://example.com -e php结合以下参数可优化扫描结果:
参数 | 作用 |
| 使用自定义字典(如 |
| 递归扫描子目录(发现 |
| 增加并发线程(如 |
| 设置请求延迟(如 |
| 排除无效状态码(如 |
三、CTF场景常用命令(信息搜集重点)
在CTF中,需重点扫描备份文件、配置文件、敏感目录,推荐命令:
python dirsearch.py -u http://目标网址 -e * -r -x 404 --full-url-e *:扫描所有常见后缀(如.php、.txt、.zip)。-r:递归扫描子目录。--full-url:显示完整URL(方便直接访问结果)。
四、结果分析(关键信息提取)
扫描结果中需重点关注以下内容:
- 状态码200:目录/文件直接存在(如
/robots.txt、/admin)。 - 备份文件:如
index.php~(vim备份)、.index.php.swp(临时文件),可能包含源码或flag。 - 压缩包:如
backup.zip、source.tar.gz,可能是网站源码。 robots.txt:查看禁止搜索引擎抓取的目录,可能暴露敏感路径。
五、注意事项
- 避免频繁扫描:同一目标短时间内多次扫描易被WAF拦截,建议间隔执行。
- 使用代理:配合
--proxy http://127.0.0.1:8080(如Burp Suite代理),隐藏真实IP。 - 合法合规:仅在授权环境下使用,禁止未授权扫描他人网站。
通过以上步骤,可快速定位目标网站的敏感资源,为后续渗透测试或CTF解题提供关键线索 🕵️♂️。
试一下,dirsearch搜一下
python dirsearch.py -u http://目标网址 -e * --full-url

这个出错,是因为429状态码(请求过多)
解决建议
1. 降低扫描频率:减少线程数(比如将 -t 参数设为 5 或 10),或增加请求间隔(通过 Dirsearch 的相关参数调整)。
2. 更换时间:避开目标的访问高峰时段,稍后再尝试扫描。
3. 检查目标限制:确认目标是否有访问频率限制,若有则需严格遵循其规则调整扫描策略。
【 ╰つ jbh°: 12-20 02:07:03 dirsearch扫太快了,服务器配置了防扫措施
╰つ jbh°: 12-20 02:07:09 降速单线程就行了 】


前两个,会出现

中间两个

倒二个网址打开

最后一个200网址打开,


总结
也算是熟悉了这个扫描工具的使用方式,以及使用时的方法,遇到方法如何解决。。。