Web 渗透信息收集实战:站点指纹识别与目录扫描
- 前言
-
- 实验环境说明
- [1. 站点指纹识别](#1. 站点指纹识别)
-
- [1.1 什么是站点指纹](#1.1 什么是站点指纹)
- [1.2 指纹识别能拿到什么信息](#1.2 指纹识别能拿到什么信息)
- [1.3 浏览器插件识别(最简单)](#1.3 浏览器插件识别(最简单))
- [1.4 命令行工具批量识别](#1.4 命令行工具批量识别)
- [1.5 手动识别](#1.5 手动识别)
- [1.6 指纹识别的常见坑](#1.6 指纹识别的常见坑)
- [2. 网站目录扫描(全部基于 Vulhub 本地靶场实操)](#2. 网站目录扫描(全部基于 Vulhub 本地靶场实操))
-
- [2.1 目录扫描基础概念](#2.1 目录扫描基础概念)
- [2.2 实验环境启动(对应你截图 Vulhub ThinkPHP5 靶场)](#2.2 实验环境启动(对应你截图 Vulhub ThinkPHP5 靶场))
- [2.3 目录扫描工具:Dirsearch 实操](#2.3 目录扫描工具:Dirsearch 实操)
-
- [2.3.1 工具介绍](#2.3.1 工具介绍)
- [2.3.2 基础扫描命令](#2.3.2 基础扫描命令)
- [2.3.3 常用拓展参数(靶场优化扫描)](#2.3.3 常用拓展参数(靶场优化扫描))
- [2.3.4 扫描结果判断标准](#2.3.4 扫描结果判断标准)
- [2.4 御剑目录扫描工具](#2.4 御剑目录扫描工具)
-
- [2.4.1 工具介绍](#2.4.1 工具介绍)
- [2.4.2 基本操作](#2.4.2 基本操作)
- [2.4.3 字典替换与扩展](#2.4.3 字典替换与扩展)
- [2.5 FindSomething浏览器被动信息提取插件](#2.5 FindSomething浏览器被动信息提取插件)
-
- [2.5.1 工具基础介绍](#2.5.1 工具基础介绍)
- [2.5.2 安装和使用方式](#2.5.2 安装和使用方式)
- 本章总结
前言
在 Web 渗透测试的完整流程中,信息收集是第一步,也是决定后续渗透效率的关键环节。拿到一个目标站点后,先摸清它用了什么 CMS、跑在什么中间件上、有哪些隐藏目录和接口,远比一上来就盲目扫漏洞、跑工具要高效得多。
上一篇我们讲了企业级信息收集 ------从主域名、备案信息、子域名到企业主体,解决的是"目标有哪些资产"的问题。这一篇我们往下钻一层,聚焦到具体的 Web 站点本身:当你已经拿到一个域名,如何进一步摸清这个网站的技术栈、目录结构和接口信息,为后续的漏洞挖掘和权限获取铺路。
读完本文,你将掌握 3 种指纹识别方法 + 3 款目录扫描工具 + 1 款被动信息提取插件 的使用,能够独立完成对单个 Web 站点的技术侦察。
实验环境说明
- 操作系统:Kali Linux (WhatWeb、Dirsearch 自带或可直接安装)
- 靶场环境:Vulhub ThinkPHP 5 RCE 靶场(本地 Docker 部署)
- 浏览器:Chrome / Edge / Firefox 均可
- 前置条件:了解基本 HTTP 协议、会使用基础 Linux 命令
⚠️ 合规声明:本文所有内容仅用于授权范围内的安全测试与学习研究,请勿对任何未授权的网站执行扫描、探测或信息收集操作。所有实验请在本地靶场或已获得书面授权的环境中进行,遵守《网络安全法》及相关法律法规。
1. 站点指纹识别
1.1 什么是站点指纹
简单说,站点指纹就是一个网站的 "技术身份证"。
每个网站用的 CMS、框架、中间件、前端组件都不一样,会在页面源码、HTTP 响应头、特定路径里留下独特的特征------这些特征组合起来,就是这个网站的指纹。
为什么要识别指纹?
- 知道用的什么 CMS,直接去搜对应版本的已知漏洞
- 知道中间件版本,判断有没有可利用的 CVE
- 知道前端框架和开发语言,缩小后续测试范围,少走弯路
1.2 指纹识别能拿到什么信息
| 类型 | 常见内容 | 渗透价值 |
|---|---|---|
| CMS 类型 | WordPress、Discuz、ThinkPHP、DedeCMS | 直接匹配已知漏洞、后台默认路径 |
| Web 框架 | Spring Boot、Django、Flask、Laravel | 对应框架的常见漏洞、配置文件路径 |
| 中间件 | Nginx、Apache、IIS、Tomcat | 版本对应解析漏洞、配置漏洞 |
| 前端组件 | jQuery、Vue、React、Bootstrap | 组件版本 XSS、原型链污染等 |
| 开发语言 | PHP、Java、Python、ASPX | 决定后续 Payload 类型、上传绕过思路 |
1.3 浏览器插件识别(最简单)
工具:Wappalyzer
Wappalyzer 是一款跨浏览器的指纹识别插件,内置上千种 Web 技术的指纹规则,打开网页就能自动识别站点的技术栈。
适用场景:快速浏览目标站点时顺手查看,零成本获取基础技术栈信息。

安装与使用步骤:
- Chrome / Firefox / Edge 插件商店直接搜索 "Wappalyzer" 安装
- 打开目标网站,点击浏览器工具栏上的 Wappalyzer 图标
- 插件会自动展示识别结果:CMS、中间件、前端库、服务器信息等

优缺点:
- ✅ 优点:零门槛,打开网页就能看,不产生额外请求
- ❌ 缺点:信息粒度有限,部分站点识别不出来,版本信息可能不准确
1.4 命令行工具批量识别
工具:WhatWeb
WhatWeb 是一款开源的网站指纹识别工具,Kali Linux 自带,也可独立安装。它内置上千种指纹规则,能识别 CMS、中间件、操作系统、脚本语言等多种信息。
适用场景:批量扫描多个目标、需要更详细的指纹信息时使用。
基础命令:
bash
whatweb csdn.net
它会自动去匹配几百种指纹规则,输出 CMS、中间件、操作系统、脚本语言等信息。

常用参数表格
| 参数 | 作用 | 说明 |
|---|---|---|
-v |
详细输出 | 展示更完整的匹配过程和识别细节 |
-a 3 |
高强度扫描 | 发起更多请求,识别更精准,但更容易被 WAF 拦截 |
-i |
从文件读取目标 | 支持批量扫描多个域名 |
注意:高强度扫描会发起大量请求,仅限授权靶场使用,不要扫外网。
1.5 手动识别
- 打开目标网页,按下键盘
F12调出浏览器开发者工具,切换至「网络 (Network)」面板,按F5刷新页面加载全部请求。 - 在左侧请求列表选中第一条
document类型的主网站域名请求。 - 右侧面板切换到「标头」选项卡,下滑查看响应标头 板块:
- 读取
Server字段,识别中间件、WAF 设备; - 查看
X-Powered-By等自定义字段,判断后端脚本语言。
- 读取
- 切换至「源代码」面板,使用快捷键
Ctrl+F检索关键词:thinkphp/dede/wp-content匹配 CMS 系统;django/spring匹配后端开发框架;jquery/vue识别前端组件版本。
- 筛选 Network 面板内 JS 文件,查看脚本内容,提取接口路径、项目版本特征。
- 访问网站不存在的随机路径,通过 404 报错页面样式、报错堆栈辅助判断框架。
小技巧 :手动识别时,至少从 响应头、页面源码、报错页面 三个维度交叉验证,结果才可靠。
合规提示:以上手动分析方法仅用于查看页面公开信息,请勿对未授权站点进行深度探测或漏洞扫描。
1.6 指纹识别的常见坑
- CDN / WAF 会伪装响应头 :有些站点
Server头写的是 Cloudflare,真实中间件藏在 CDN 后面,需要绕过 CDN 才能看到真实信息 - 版本信息可能造假:管理员会故意修改响应头或版本号,误导测试者,不能仅凭一个字段下结论
- 识别结果仅供参考:一定要交叉验证,不能只靠一个工具的结果就断定技术栈
本章小结:指纹识别是信息收集的第一步,工具 + 手动结合使用,先把目标的技术栈摸清楚,后续测试才能对症下药。推荐的组合是:Wappalyzer 快速初筛 → WhatWeb 详细扫描 → 手动分析交叉验证。
2. 网站目录扫描(全部基于 Vulhub 本地靶场实操)
2.1 目录扫描基础概念
- 目录扫描原理:使用字典批量请求网站路径,根据服务器返回状态码判断路径是否存在。
- 敏感目录 / 文件价值:后台登录页、数据库备份 sql、源码压缩包、配置 env 文件、上传目录。
- 合规强调:本章全部操作仅在本地 Vulhub 靶机完成,禁止对外网站点爆破扫描。
2.2 实验环境启动(对应你截图 Vulhub ThinkPHP5 靶场)
你的终端路径:/home/kali/vulhub/thinkphp/5-rce,完整启动流程:
- 进入靶场目录
base
cd /home/kali/vulhub/thinkphp/5-rce
- 启动 Docker 靶场容器
base
docker compose up -d

- 查看靶场运行状态,获取访问 IP
base
docker compose ps

- 浏览器访问靶场地址(如
http://127.0.0.1:8080),作为本次目录扫描目标。
方式 1:Kali 本机访问(127.0.0.1)
仅在 Kali 系统内部浏览器可用,容器映射端口直接本地回环访问
base
http://127.0.0.1:8080
方式 2:物理主机(Windows/Mac)访问 Kali 靶场(推荐实操)
- Kali 终端输入
ip a,查看 Kali 本机局域网 IP,示例:192.168.200.131(此处以你的真实地址为准)

- 物理主机浏览器输入:
base
http://192.168.200.131:8080()

2.3 目录扫描工具:Dirsearch 实操
2.3.1 工具介绍
Dirsearch 是一款主流 Python 目录爆破工具,用于批量枚举网站后台、备份文件、敏感路径。
官方开源仓库:https://github.com/maurosoria/dirsearch
2.3.2 基础扫描命令
base
dirsearch -u http://127.0.0.1:8080
参数解释:
-u:指定目标网站 URL,仅填写本地自有靶场地址

- 扫描后缀:
php,aspx,jsp,html,js - 请求方式:GET,线程 25,内置字典共 11461 条路径
- 自动报告路径:
/home/kali/reports/目录下 txt 文件,扫描结果全部保存
| 状态码 | 路径 | 利用价值 |
|---|---|---|
| 403 | 各类.htaccess 文件 | 路径真实存在,禁止访问,存在配置文件泄露风险 |
| 200 /favicon.ico | 网站图标 | 可用于匹配识别 ThinkPHP 框架 |
| 404 /index.php/login/ | 后台登录路径不存在 | 无利用价值 |
| 200 /robots.txt | 爬虫规则文件 | 查看网站禁止对外开放的敏感目录 |
| 301 /static | 静态资源目录 | 真实存在,跳转至静态文件夹,可遍历静态资源 |
- 底部
Task Completed:目录扫描全部执行完毕
手动指定报告格式(常用参数)
① 输出 txt(默认)
base
dirsearch -u http://192.168.200.131:8080 -o report.txt
② 输出 html 可视化报告(推荐查看)
base
dirsearch -u http://192.168.200.131:8080 -o result.html --format=html
支持格式:simple, plain, json, xml, md, csv, html, sqlite
2.3.3 常用拓展参数(靶场优化扫描)
base
# 指定字典、扫描备份后缀、限制线程
dirsearch -u http://127.0.0.1:8080 -t 20 -e php,txt,sql,bak

-t 20
-t = --threads,设置并发扫描线程数
- 数值 20:同时发起 20 个 HTTP 请求,加快扫描速度
- 数值越大扫描越快,但容易触发服务器限流 / 403 封禁,本地靶场 20 属于安全区间
-e php,txt,sql,bak
-e = --extensions,指定追加扫描的文件后缀
逗号分隔,工具会自动给字典内每条路径拼接这些后缀进行探测:
php:探测网站业务源码、后台页面(admin.php、login.php)txt:探测说明文件、账号明文记录、robots.txtsql:探测数据库备份文件(网站导出的数据库脚本)bak:探测程序备份文件(index.bak、config.bak,常泄露源码)
2.3.4 扫描结果判断标准
- 状态码
200 OK:路径真实存在,优先访问后台、数据库备份文件 - 状态码
301/302:页面存在跳转,大概率是管理登录页面 - 状态码
403 Forbidden:目录存在,但服务器禁止直接访问,存在进一步测试价值
dirsearch -h作用:打印工具全部参数说明,告诉你每个参数(-u/-t/-e/-w 等)的功能、用法,方便你写扫描命令、调整扫描规则。
合规提示:本节所有命令仅针对本地 Vulhub 内网靶场执行,禁止对任何未授权公网网站发起目录爆破扫描。
2.4 御剑目录扫描工具
2.4.1 工具介绍
御剑是一款国产目录扫描工具,内置大量适配国内场景的字典,对中文后台路径、国产 CMS 的扫描命中率较高。
- 官方开源仓库 :https://github.com/foryujian/yjdirscan
- 适用场景:针对国内 CMS(ThinkPHP、织梦、帝国等)的目录扫描,Windows 环境下 GUI 操作更友好,新手易上手
工具优势
- 字典适配国内场景:内置大量中文后台路径、国产 CMS 专属字典,针对 ThinkPHP、织梦、帝国 CMS 等 PHP 站点,扫描命中率高于 Dirsearch;
- 双端兼容:Windows 提供可视化 GUI 界面,新手零门槛上手;Linux/Kali 环境支持命令行批量扫描;
- 原生支持备份后缀探测:自带中文管理目录、备份文件字典,适配 Vulhub 本地 PHP 靶场练习。
2.4.2 基本操作
御剑采用经典的多标签页布局,顶部为功能导航栏,左侧为目标地址管理区,中间为扫描结果展示区,右侧为字典和参数配置区,底部为操作按钮和进度条,整体界面简洁直观,新手容易上手。
完整操作步骤如下:
- 启动工具
下载解压后,双击 御剑.exe 启动程序,默认进入「批量扫描后台」标签页,这是最常用的目录扫描功能界面。

界面区域说明:
- 顶部功能区:包含「开始扫描」「停止扫描」「继续扫描」「暂停扫描」四个核心操作按钮,以及扫描模式、线程数、超时时间、状态码筛选等参数配置
- 左侧地址区:用于管理待扫描的目标域名列表,支持批量添加多个目标
- 中间结果区:实时展示扫描发现的有效路径,包含 ID、地址、HTTP 响应状态码三列
- 右侧字典区:列出内置的字典文件,勾选即表示使用该字典参与扫描
- 底部操作区:「添加」「删除」「清空」三个按钮,用于管理左侧的目标地址列表
说明:以下操作在 Windows 物理机上完成,因此靶场地址使用 Kali 局域网 IP。
- 添加目标地址与选择字典
点击左下角的「添加」按钮,在弹出的输入框中填入靶场地址 http://192.168.200.131:8080/,确认后左侧地址列表会显示该目标,作业数量变为 1。
右侧字典区域勾选需要使用的字典文件
扫描 ThinkPHP 这类 PHP 靶场,建议勾选 DIR.txt 通用目录字典,以及 PHP 相关的备份文件、后台路径字典。

参数说明(扫描前可调整):
- 模式 :默认
HEAD - 速度极快,使用 HEAD 请求方式,只获取响应头不下载页面内容,扫描速度最快;如果目标站点禁用了 HEAD 请求,可以切换为 GET 模式 - 线程:默认 25 线程,即同时发起 25 个 HTTP 请求;本地靶场可以适当调高,外网测试建议调低避免被封
- 超时:默认 5 秒,单个请求超过 5 秒无响应则判定为超时跳过
- 状态码筛选:默认勾选 200 和 403,即只展示状态码为 200(存在)和 403(禁止访问)的路径;3xx 重定向状态码可按需勾选
- 开始扫描
点击顶部「开始扫描」按钮,工具立即按照选定的字典和参数开始批量探测。
扫描过程中可以观察到以下变化:
- 扫描信息栏:实时显示当前正在探测的完整 URL 路径,方便了解扫描进度
- 扫描速度:右侧显示每秒请求数,本地靶场通常可以达到每秒几千甚至上万次请求
- 结果列表:每发现一条有效路径,就会实时添加到中间的结果表格中
- 底部进度条:绿色进度条从左向右推进,直观展示整体扫描进度

💡 小技巧:扫描过程中可以随时点击「暂停扫描」临时中断,之后点击「继续扫描」从中断处接着扫,不用从头开始。如果发现目标站点开始返回 403 或连接超时,说明可能被 WAF 封禁了,及时点击「停止扫描」,等一段时间后降低线程数再试。
- 查看与验证扫描结果
扫描完成后,底部绿色进度条走满,扫描信息栏显示「扫描完成...」,中间结果表格会列出所有探测到的有效路径。
结果列表解读:
| 字段 | 说明 |
|---|---|
| ID | 路径的发现顺序编号 |
| 地址 | 探测到的完整 URL 路径 |
| HTTP 响应 | 该路径返回的 HTTP 状态码 |
常见状态码含义:
- 200:路径真实存在且可正常访问,优先关注后台、备份文件等高价值路径
- 403:路径存在但服务器禁止访问,说明目录是真实的,可能存在配置文件泄露风险
- 301/302:路径存在跳转,通常是重定向到登录页或其他页面

验证扫描结果:
在结果列表中双击任意一条记录,会自动调用系统默认浏览器打开该路径,直接在浏览器中验证页面内容是否符合预期。
下图为双击 index.php 后在浏览器中打开的 ThinkPHP 5 默认欢迎页面,说明扫描结果准确有效:

预期结果总结:扫描结束后,工具会列出所有探测到的有效路径,包含完整 URL 和对应状态码,可直接双击跳转验证。根据扫描结果,可以进一步筛选出后台入口、备份文件、配置文件等高价值路径,为后续的漏洞测试提供目标。
2.4.3 字典替换与扩展
御剑的字典文件存放在安装目录下的字典文件夹中,可以直接替换或添加自定义字典:

字典优化建议:
- 根据目标 CMS 类型,添加对应框架的专属字典,提高命中率
- 平时收集到的敏感路径、后台地址,及时补充到字典中
- 不同场景使用不同字典:通用扫描用小字典速度快,深度测试用大字典覆盖全
2.5 FindSomething浏览器被动信息提取插件
2.5.1 工具基础介绍
开源仓库:https://github.com/momosecurity/FindSomething
由陌陌安全(momosecurity) 开源维护,是一款 Chrome / Firefox / Edge 跨浏览器扩展工具。
核心定位(区分 dirsearch、御剑)
dirsearch、御剑属于主动爆破工具 :主动发包猜路径;
FindSomething 属于被动信息收集工具 :仅解析当前页面源码、JS、网络请求,不主动发送额外请求,不会对目标产生流量压力。
2.5.2 安装和使用方式
将下载好的文件夹进行解压

然后进入Edge浏览器的扩展界面,选择管理扩展,打开开发者模式

点击加载解压缩的扩展,选中刚刚解压的文件夹

然后我们就可以看到扩展被添加了


点击工具栏 FindSomething 图标,插件自动解析页面全部资源
在面板分类查看提取内容,支持一键复制单条 URL、批量导出结果
把提取到的隐藏接口、未公开路径,补充到 dirsearch / 御剑 字典再次扫描,大幅降低漏扫

本章总结
到这里,站点层面的信息收集就告一段落了。
我们从最基础的指纹识别开始,用浏览器插件、命令行工具、手动分析 三种方式摸清了目标站点的"身份"------它用了什么 CMS、跑在什么中间件上、后端是什么语言。接着通过 Dirsearch、御剑 等目录扫描工具,在 Vulhub ThinkPHP 5 靶场上实战演练了如何发现隐藏的目录、后台入口和敏感文件。最后用 FindSomething 这类被动扫描插件,在不触发告警的前提下补充了更多接口和资源信息。
| 序号 | 核心要点 | 关键说明 |
|---|---|---|
| 1 | 指纹识别交叉验证 | 不可仅依赖单一工具结果,需从响应头、页面源码、报错页面三个维度交叉确认技术栈,避免因CDN、WAF伪装或版本信息造假导致误判 |
| 2 | 目录扫描字典适配 | 按场景选择对应字典:通用扫描用小字典提升速度,深度测试用大字典扩大覆盖范围,针对国产CMS需搭配专属中文字典提高命中率 |
| 3 | 主动+被动结合扫描 | 主动扫描(Dirsearch/御剑)效率高、覆盖广;被动收集(FindSomething)隐蔽性强、无额外流量,两者配合可大幅降低漏扫概率 |
| 4 | 扫描节奏合理控制 | 并发线程过高易触发WAF封禁,外网测试建议低线程慢扫,本地授权靶场可适当调高线程提升扫描效率 |
适用边界与注意事项
- 本文介绍的方法主要适用于传统 Web 应用,对 SPA 单页应用、前后端完全分离的站点,目录扫描的效果会打折扣
- 如果目标站点使用了 CDN,指纹识别和目录扫描的结果可能不准确,需要先绕过 CDN 找到真实源站
- 目录扫描存在漏报是正常现象,字典质量、目标站点的 WAF 策略、服务器配置都会影响最终结果
下章预告
但这还不够。知道了"网站长什么样",我们还得知道"它跑在什么机器上"------服务器是什么操作系统?开了哪些端口?运行着哪些服务?这些信息直接决定了后续漏洞利用的方向和思路。
下一章,我们把视角从 "应用层" 下沉到 "基础设施层",聊聊服务器层面的信息收集该怎么做。
💬 互动时间:你平时用得最多的目录扫描工具是什么?有没有私藏的好用字典?欢迎在评论区分享你的经验~
📚 系列文章:本文是 Web 渗透信息收集系列的第二篇,想看前文或后续内容,可以关注我的专栏持续更新。
🔖 建议收藏:信息收集是渗透测试的基本功,工具命令多、参数杂,建议收藏本文随时查阅。
