【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 常用命令参数

参数

功能说明

-u URL

指定目标 URL(http://example.com

-w FILE

指定自定义字典文件(默认使用 dictionaries/common.txt)

-e EXTENSIONS

扫描指定扩展名(如 php,html,zip)

-t THREADS

设置线程数(默认 20,建议不超过 50)

--timeout SEC

设置请求超时时间(默认 30 秒)

--random-agent

启用随机 User-Agent

3.2 基础扫描示例
1.扫描单个目标:

【扫描单个URL,并限制线程数和扩展名:】

python dirsearch.py -u http://example.com -e php,html 

用于对目标网站进行目录/文件暴力枚举

参数

含义

-u http://example.com

指定目标URL:需扫描的网站地址(替换为实际测试的网址)。

-e php,html

指定扩展名:枚举以.php.html结尾的文件(如admin.phpindex.html)。

命令作用

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.php
  • 200:文件/目录存在且可访问;
  • 403:目录存在但无访问权限;
  • 404:资源不存在(默认不显示)。

注意事项

  1. 合法合规:仅可对授权目标使用,未经允许扫描他人网站可能违反法律法规。
  2. 字典优化:默认字典位于dirsearch-master/db/dicc.txt,可根据需求替换为更针对性的字典。
  3. 速度控制:可添加-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 个线程并仅检查扩展名为 phpasp 的路径,同时排除扩展名为 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的自定义字典扫描命令,用于指定自定义的目录/文件字典对目标网站进行暴力枚举,具体参数含义如下:

核心参数解析

参数

含义

-u http://example.com

指定目标URL:需扫描的网站地址(替换为实际测试的网址)。

-w /path/to/custom_wordlist.txt

指定自定义字典:使用用户提供的字典文件

custom_wordlist.txt)替代DirSearch的默认字典,枚举文件/目录。

命令作用

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网站的后台入口或配置文件。

注意事项

  1. 字典来源:可从GitHub(如SecLists项目)下载行业通用字典,或根据目标网站特征(如CMS类型、技术栈)自制字典。
  2. 性能优化:字典越大,扫描时间越长,建议根据目标规模选择合适的字典。
  3. 合规性:仅可对授权目标使用,避免未经允许的扫描行为 ⚠️。

4.过滤状态码:
python dirsearch.py -u http://example.com --exclude-status 403,500 

这是DirSearch的过滤状态码扫描命令,用于在目录枚举时排除指定HTTP状态码的结果,让输出更聚焦于有效资源,具体参数含义如下:

核心参数解析

参数

含义

-u http://example.com

指定目标URL:需扫描的网站地址(替换为实际测试的网址)。

--exclude-status 403,500

排除状态码:扫描结果中不显示HTTP状态码为

403(禁止访问)和500(服务器内部错误)的条目。

命令作用

默认情况下,DirSearch会显示所有扫描到的状态码(如200403404等)。

使用--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请求头,以模拟特定场景或绕过防护,具体参数含义如下:

核心参数解析

参数

含义

-u http://example.com

指定目标URL:需扫描的网站地址(替换为实际测试的网址)。

-H "X-Custom-Header: Value"

添加自定义请求头:向每个扫描请求中加入

X-Custom-Header: Value这个HTTP头

(可重复使用-H添加多个头)。

-H "Authorization: Bearer token"

添加授权请求头:示例中加入了Bearer Token授权头,用于访问需要身份验证的资源

(如登录后的后台)。

命令作用

HTTP请求头是客户端向服务器传递的附加信息,DirSearch默认使用简单的请求头

(如User-Agent: DirSearch/0.4.2)。

通过-H参数添加自定义头,可实现以下场景:

  1. 模拟浏览器

添加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,避免被服务器识别为爬虫。

  1. 身份验证

添加Authorization: Bearer tokenCookie: sessionid=xxx

扫描需要登录才能访问的目录(如/dashboard/)。

  1. 绕过防护

部分网站会检查特定请求头(如RefererX-Requested-With),添加后可绕过简单的WAF规则。

示例场景

假设目标网站需要登录后才能访问/admin/,你可先通过浏览器登录,获取Cookie后执行命令:

python dirsearch.py -u http://example.com -H "Cookie: PHPSESSID=abc123def456"

此时DirSearch会携带该Cookie扫描,可能发现登录后的隐藏目录。

注意事项

  1. 请求头格式:每个-H后需用双引号包裹完整的键值对(如"Key: Value"),键和值之间用冒号+空格分隔。
  2. 敏感信息:若添加AuthorizationCookie等敏感头,需确保命令在安全环境中执行,避免泄露凭证。
  3. 兼容性:部分网站会严格验证请求头格式,错误的头可能导致扫描失败(如缺少空格、拼写错误)。

该命令适用于需要定制请求特征的扫描场景,需结合目标网站的防护机制灵活使用 ✅。

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状态码,让扫描结果仅保留你关注的有效资源,具体参数含义如下:

核心参数解析

参数

含义

-u http://example.com

指定目标URL:需扫描的网站地址(替换为实际测试的网址)。

-i 200,302

显示状态码:扫描结果中只保留HTTP状态码为

200(资源存在)和302(临时重定向)的条目。

-x 404,500

排除状态码:扫描结果中过滤掉HTTP状态码为

404(资源不存在)和500(服务器错误)的条目。

命令作用

通过-i-x组合,实现双重筛选

  1. -i(Include):主动“保留”你关心的状态码

(如200表示文件存在、302可能指向后台登录页)。

  1. -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的条目会被自动过滤,不显示在结果中)

注意事项

  1. 参数顺序-i-x无先后要求,但需确保状态码用英文逗号分隔(无空格)。
  2. 优先级-i的优先级高于-x,即先筛选-i包含的状态码,再从其中排除-x的状态码。
  3. 灵活组合:可根据目标调整状态码(如-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:代理服务监听的端口(常见代理端口还有10808888)。
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的递归目录扫描命令,用于深度探索目标网站的目录结构,

参数

功能说明

--recursive

启用递归扫描(缩写-r),表示扫描到存在的目录后,会自动进入该目录继续扫描子目录

-R 3

设置递归深度为3(-R--recursion-depth的缩写),即最多向下扫描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格式保存到指定文件,具体含义如下:

【即为导出,以什么格式,什么路径】

参数拆解

参数

功能说明

-o report.json

指定输出文件路径-o--output的缩写),扫描结果会保存到

report.json中。

--format json

设置输出格式为JSON(默认是TXT),确保结果以结构化的JSON格式存储。

核心作用

DirSearch默认将结果输出到终端(控制台),-o--format参数的组合用于:

  1. 持久化保存:避免终端关闭后丢失扫描结果。
  2. 结构化分析:JSON格式便于后续用Python、Excel等工具自动化解析(如统计状态码分布、提取存在的目录)。
  3. 报告生成:可将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没有发生重定向

状态码

redirect字段值

说明

200

""

目录/文件直接存在

301

"http://xxx.com/new"

永久重定向到新地址

302

"http://xxx.com/login"

临时重定向(如需要登录)

扩展用法

  • 多格式导出:DirSearch支持txtjsonxml等格式,如--format xml可导出XML报告。
  • 终端+文件双输出:默认-o会覆盖终端输出,若需同时显示,可加--full-url参数。

注意事项

  1. 文件覆盖:若report.json已存在,会被直接覆盖,建议扫描前备份旧文件。
  2. 权限问题:确保当前目录有写入权限(如Linux需chmod授权)。
  3. 结果解析:可使用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扫描后结果留存与分析的关键步骤 📊。

常见状态码含义

状态码

含义

场景价值

使用场景

200

成功请求

【大概率就是,成功巴拉巴拉了】

直接发现存在的文件/目录(如/index.html)。

302

临时重定向

请求的资源暂时被移动到新位置

服务器返回302时,会通过Location响应头告诉客户端新的临时URL。

浏览器会自动跳转到该URL,但原始URL仍有效(未来请求需继续使用原地址)。

新的临时URL 可能指向登录页

(如/login/admin)或隐藏资源。

不缓存重定向,每次请求原URL

登录验证

未登录用户访问需权限的页面时,被重定向到登录页。

临时路径调整

接口或页面临时迁移,用302兼容旧请求。

负载均衡

临时将请求导向其他服务器分摊流量。

301

永久重定向

永久迁移,原URL失效

缓存重定向,后续直接访问新URL

307

严格保持原方法

HTTP 307是临时重定向状态码,明确要求客户端严格保留原请求的方法和请求体,通过Location头指向临时URL。

无论原请求是POST、PUT还是DELETE,重定向时方法和请求体(如表单数据、上传文件)完全保留。

  • API临时维护时,将POST请求重定向到备用服务器,确保数据不丢失。
  • 文件上传接口临时迁移,保留PUT方法和上传的文件内容。

303

强制转为GET

HTTP 303是临时重定向状态码,

要求客户端必须使用GET方法访问Location头指向的新URL,且丢弃原请求体

无论原请求是POST、PUT还是DELETE,重定向时强制转为GET,适合需要“结果展示”的场景

  • 表单提交(POST)后,重定向到结果页面(如“提交成功”提示页),防止用户刷新页面重复提交。
  • PUT上传文件后,返回303让客户端以GET方式查看上传结果(而非直接返回文件内容)。

429

访问页面的次数过于频繁

访问页面的次数过于频繁错误代码429也是网页中经常见的错误,是因为点击该网页频率过高。

实际开发中遇到的,客户端收到429错误,以为是服务端接口逻辑问题,实际是sentinel限流了 //限流问题

400

错误请求

HTTP状态码400表示"错误请求"。它是一种客户端错误状态码,表示服务器无法理解请求的语法或参数。当服务器收到一个无效的请求时,通常会返回400错误码。这可能是由于请求中缺少必要的参数、参数格式错误、非法字符、身份验证问题或其他语法错误所导致的。如果你遇到了400错误,你可以检查请求的参数和语法是否正确,并尝试修复问题。

403

权限不够

HTTP 403状态码的完整表述是"403 Forbidden",

中文译为"禁止访问"(权限不够)

404

资源不存在

【常见报错的破东西】

无效路径,过滤后避免输出大量无意义结果。

500

服务器错误

是HTTP协议中的状态码,表示服务器在处理请求时遇到意外故障,无法完成请求

它是服务器端的通用错误提示,不指向具体问题,需结合日志排查。

服务器返回500时,意味着服务端自身出错(如代码崩溃、配置错误),而非客户端请求有误。浏览器通常显示“Internal Server Error”,但不暴露具体细节(避免泄露敏感信息)。

扫描触发网站异常,过滤后减少报错干扰。

给一道示例题 [第一章 web入门]常见的搜集

题目

尝试?

乍一看,无头绪,且浏览了本网页的源代码,看不懂。。。

利用dirsearch搜一下信息?

一、基础扫描命令(核心用法)

最常用的基础命令格式:

python dirsearch.py -u http://目标网址 -e 后缀名
  • -u:指定目标URL(如http://192.168.1.4)。
  • -e:指定文件后缀(如phptxt,或用*扫描所有常见后缀)。

示例
扫描目标网站的PHP文件和目录:

python dirsearch.py -u http://example.com -e php

结合以下参数可优化扫描结果:

参数

作用

-w 字典路径

使用自定义字典(如-w /root/dirsearch/db/dicc.txt,默认用内置典)。

-r

递归扫描子目录(发现/admin后自动扫描/admin/login等)。

-t 线程数

增加并发线程(如-t 50,默认25,加快扫描速度)。

--delay 毫秒

设置请求延迟(如--delay 1000,避免被WAF拦截)。

-x 状态码

排除无效状态码(如-x 404,500,只看200/301等有效结果)。

三、CTF场景常用命令(信息搜集重点)

在CTF中,需重点扫描备份文件、配置文件、敏感目录,推荐命令:

python dirsearch.py -u http://目标网址 -e * -r -x 404 --full-url
  • -e *:扫描所有常见后缀(如.php.txt.zip)。
  • -r:递归扫描子目录。
  • --full-url:显示完整URL(方便直接访问结果)。

四、结果分析(关键信息提取)

扫描结果中需重点关注以下内容:

  1. 状态码200:目录/文件直接存在(如/robots.txt/admin)。
  2. 备份文件:如index.php~(vim备份)、.index.php.swp(临时文件),可能包含源码或flag。
  3. 压缩包:如backup.zipsource.tar.gz,可能是网站源码。
  4. robots.txt:查看禁止搜索引擎抓取的目录,可能暴露敏感路径。

五、注意事项

  1. 避免频繁扫描:同一目标短时间内多次扫描易被WAF拦截,建议间隔执行。
  2. 使用代理:配合--proxy http://127.0.0.1:8080(如Burp Suite代理),隐藏真实IP。
  3. 合法合规:仅在授权环境下使用,禁止未授权扫描他人网站。

通过以上步骤,可快速定位目标网站的敏感资源,为后续渗透测试或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网址打开,

总结

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

Read more

【C++】多态

【C++】多态

多态 ✨前言:在 C++ 的世界里,“多态(polymorphism)” 是面向对象编程的灵魂之一。 它让同一个接口在不同对象上表现出不同的行为,从而大大提升了代码的复用性、扩展性与灵活性。 本文将带你深入理解多态的核心原理,从概念、实现条件、虚函数、重写规则,到虚函数表与动态绑定机制,逐步揭开多态背后的运行逻辑。 📖专栏:【C++成长之旅】 目录 * 多态 * 一、多态的概念 * 二、多态的定义及实现 * 2.1 多态的构成条件 * 2.1.1 实现多态还有两个必须重要条件: * 2.1.2 虚函数 * 2.1.3 虚函数的重写/覆盖 * 2.1.4 多态场景的⼀个选择题 * 2.1.

By Ne0inhk
C++之多态

C++之多态

多态 * 什么是多态? * 多态的定义及实现 * 多态的构成条件 * 虚函数 * 虚函数的重写/覆盖 * 关键技术原理 * 最佳实践指南 * 虚函数重写 * 协变 * 析构函数的重写 * override和final关键字 * 纯虚函数和抽象类 * 多态的原理 * 多态是如何实现的 * 1. 虚函数表(vtable) * 虚函数表知识要点 * 2. 虚函数的声明 * 3. 多态的实现过程 * 动态绑定与静态绑定 什么是多态? 多态(Polymorphism)是面向对象编程的三大核心特性之一(封装、继承、多态),源于希腊语"多种形态"。在C++中,它允许我们使用统一的接口处理不同类型的对象,显著提高了代码的灵活性和可扩展性。 核心概念 1. 同一接口,多种形态 不同的对象可以通过相同的方法名调用,但实际执行的逻辑由对象自身的类决定。 2. 解耦调用与实现 调用者只需关注接口(方法名和参数)

By Ne0inhk

C++ max函数超超超详细

C++ max函数超超超详细 一、简介 在C++编程中,max函数是一个非常有用的工具,主要用于找出两个或多个对象中的最大值。它存在于标准库中,在不同的头文件中包含不同的重载形式,不过主要涉及到<algorithm>和<utility>头文件。这个函数在处理各种数据类型,无论是基本数据类型还是自定义类型时都非常有用。 二、基础用法 (一)两个参数的基本类型 1. 当处理两个基本数据类型(如int、double等)时,std::max的用法相对简单。 * 代码解释: * 首先包含了<iostream>用于输入输出操作,<algorithm>用于使用std::max函数。 * 在main函数中定义了两个int类型的变量a和b,分别赋值为5和10。 * 然后调用std::max(a, b),这个函数会比较a和b的大小,

By Ne0inhk
Qt 6 所有 C++ 类(官方完整清单 · 原始索引版)

Qt 6 所有 C++ 类(官方完整清单 · 原始索引版)

来源:https://doc.qt.io/qt-6/zh/classes.html 说明:以下为 Qt 6 当前版本所有公开 C++ 类, 顺序、命名、模块标注均与官方页面一致 Qt 6 所有 C++ 类完整索引 0–9 * Q3DBars * Q3DBarsWidgetItem * Q3DCamera * Q3DGraphsWidgetItem * Q3DInputHandler * Q3DLight * Q3DObject * Q3DScatter * Q3DScatterWidgetItem * Q3DScene (QtDataVis3D) * Q3DScene (QtGraphs) * Q3DSurface * Q3DSurfaceWidgetItem * Q3DTheme A * AAny (QtProtobuf) * AssignmentInfo (QScxmlExecutableContent) * QAbstract3DAxis (QtDataVis3D) * QAbstract3DAxis

By Ne0inhk