【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

LeetCode 141题:环形链表的艺术与科学

LeetCode 141题:环形链表的艺术与科学

🌟 LeetCode 141题:环形链表的艺术与科学 * 🌀 环形链表:当数据开始循环舞蹈 * 🔍 解法一:哈希表法 - 记忆的艺术 * 解题思路 * 性能分析 * 🏃‍♂️ 解法二:快慢指针法 - 龟兔赛跑的智慧 * 解题思路 * 性能优势 * 💻 代码实现与调试心得 * 🌈 思维与实现的分离 * 🎯 总结 因为想更好地为义父义母大佬服务,本文 Bilibili 视频地址 🌀 环形链表:当数据开始循环舞蹈 在计算机科学的世界里,链表是一种优雅而基础的数据结构。正常链表如同一条笔直的小路,从起点(head)出发,每个节点指向下一个节点,最终以空指针(nullptr)作为终点,标志着旅程的结束。 Head Node1 Node2 Node3 nullptr 然而,环形链表则打破了这种线性规则,它更像是一个神秘的莫比乌斯环,没有真正的终点。链表的某个节点不再指向空,而是指向链表中已经存在的另一个节点,形成了一个无尽的循环。 Head

By Ne0inhk
Python 文件解析: Excel / Word / PDF 的解析、处理、预览与下载

Python 文件解析: Excel / Word / PDF 的解析、处理、预览与下载

1. 总览:同一个入口,不同解析器 当用户上传文件时,技术链路通常是: 1. 接收文件并保存原件。 2. 按扩展名选择对应的 Python 解析函数。 3. 生成可预览数据。 4. 前端展示原件与解析结果。 5. 用户编辑后保存。 6. 提供原件下载与编辑结果下载。 xlsx docx pdf 用户上传文件 Upload API 保存原件 按扩展名路由 Excel 处理器 Word 处理器 PDF 处理器 预览数据 预览数据 预览数据 前端预览与编辑 保存编辑结果 下载原件 / 下载编辑结果 2. 插件与依赖清单 先统一约定:本文里“插件”指第三方依赖包(Python 包 / 前端

By Ne0inhk
Python中的接口、抽象基类和协议

Python中的接口、抽象基类和协议

接口与抽象基类 在面向对象的世界中,我们应该对接口编程,而不是实现。我们的代码应该依赖于对象能做什么(抽象),而不是对象具体是谁(具体实现)。 下面通过吃汉堡的例子来演示一下。 依赖具体实现 通过上面的例子可以看到,一旦要换不同具体实现的汉堡,就必须修改人类的代码。 面向接口编程实现依赖倒置 通过上面的代码可以看到,我们使用了abc写了一个抽象基类Burger,对于类Human的eat_lunch方法只是依赖了Burger,而不是依赖了具体某个诸如ChickenBurger的实现类。后续Human想要吃别的汉堡,我们一行代码都不需要改,只需要继承基类,然后实现具体的类就可以了,这就是依赖倒置! 而这种使用抽象基类实现依赖倒置的方式,是一种硬契约! Python中的类型检查 请注意,在Python中的类型注解并不会强制检查,而只是一种静态检查,Python解释器不会去理会参数的类型注解。 可以看到,即使上面传入的不是显式继承汉堡基类的实例,也可以成功运行。因为类型注解只是静态检查。如果我们想要运行时检查,就得使用isinstance()显式检查。虚拟子类 但是这样做

By Ne0inhk

Python IDE 对决:PyCharm VS VSCode VS IDLE

好的,这是一份关于 Python IDE/编辑器选型的指南,涵盖 PyCharm、VS Code 和 IDLE 的对比: Python IDE / 编辑器选型指南:PyCharm vs VS Code vs IDLE 选择适合的开发环境对提升 Python 编程效率和体验至关重要。以下是对三种主流工具:PyCharm (JetBrains)、VS Code (Microsoft) 和 IDLE (Python 自带) 的详细对比分析。 1. IDLE (Python 自带) * 定位:轻量级、入门级集成开发环境。 * 优点: * 简单易用:随 Python 安装包自带,无需额外配置,开箱即用。 * 基础功能齐全:

By Ne0inhk