Web 渗透信息收集实战:站点指纹识别与目录扫描

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 技术的指纹规则,打开网页就能自动识别站点的技术栈。

适用场景:快速浏览目标站点时顺手查看,零成本获取基础技术栈信息。

安装与使用步骤

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

优缺点

  • ✅ 优点:零门槛,打开网页就能看,不产生额外请求
  • ❌ 缺点:信息粒度有限,部分站点识别不出来,版本信息可能不准确

1.4 命令行工具批量识别

工具:WhatWeb

WhatWeb 是一款开源的网站指纹识别工具,Kali Linux 自带,也可独立安装。它内置上千种指纹规则,能识别 CMS、中间件、操作系统、脚本语言等多种信息。

适用场景:批量扫描多个目标、需要更详细的指纹信息时使用。

基础命令

bash 复制代码
whatweb csdn.net

它会自动去匹配几百种指纹规则,输出 CMS、中间件、操作系统、脚本语言等信息。

常用参数表格

参数 作用 说明
-v 详细输出 展示更完整的匹配过程和识别细节
-a 3 高强度扫描 发起更多请求,识别更精准,但更容易被 WAF 拦截
-i 从文件读取目标 支持批量扫描多个域名

注意:高强度扫描会发起大量请求,仅限授权靶场使用,不要扫外网。


1.5 手动识别

  1. 打开目标网页,按下键盘F12调出浏览器开发者工具,切换至「网络 (Network)」面板,按F5刷新页面加载全部请求。
  2. 在左侧请求列表选中第一条document类型的主网站域名请求。
  3. 右侧面板切换到「标头」选项卡,下滑查看响应标头 板块:
    • 读取Server字段,识别中间件、WAF 设备;
    • 查看X-Powered-By等自定义字段,判断后端脚本语言。
  4. 切换至「源代码」面板,使用快捷键Ctrl+F检索关键词:
    • thinkphp/dede/wp-content匹配 CMS 系统;
    • django/spring匹配后端开发框架;
    • jquery/vue识别前端组件版本。
  5. 筛选 Network 面板内 JS 文件,查看脚本内容,提取接口路径、项目版本特征。
  6. 访问网站不存在的随机路径,通过 404 报错页面样式、报错堆栈辅助判断框架。

小技巧 :手动识别时,至少从 响应头、页面源码、报错页面 三个维度交叉验证,结果才可靠。
合规提示:以上手动分析方法仅用于查看页面公开信息,请勿对未授权站点进行深度探测或漏洞扫描。


1.6 指纹识别的常见坑

  1. CDN / WAF 会伪装响应头 :有些站点 Server 头写的是 Cloudflare,真实中间件藏在 CDN 后面,需要绕过 CDN 才能看到真实信息
  2. 版本信息可能造假:管理员会故意修改响应头或版本号,误导测试者,不能仅凭一个字段下结论
  3. 识别结果仅供参考:一定要交叉验证,不能只靠一个工具的结果就断定技术栈

本章小结:指纹识别是信息收集的第一步,工具 + 手动结合使用,先把目标的技术栈摸清楚,后续测试才能对症下药。推荐的组合是:Wappalyzer 快速初筛 → WhatWeb 详细扫描 → 手动分析交叉验证。


2. 网站目录扫描(全部基于 Vulhub 本地靶场实操)

2.1 目录扫描基础概念

  1. 目录扫描原理:使用字典批量请求网站路径,根据服务器返回状态码判断路径是否存在。
  2. 敏感目录 / 文件价值:后台登录页、数据库备份 sql、源码压缩包、配置 env 文件、上传目录。
  3. 合规强调:本章全部操作仅在本地 Vulhub 靶机完成,禁止对外网站点爆破扫描。

2.2 实验环境启动(对应你截图 Vulhub ThinkPHP5 靶场)

你的终端路径:/home/kali/vulhub/thinkphp/5-rce,完整启动流程:

  1. 进入靶场目录
base 复制代码
cd /home/kali/vulhub/thinkphp/5-rce
  1. 启动 Docker 靶场容器
base 复制代码
docker compose up -d
  1. 查看靶场运行状态,获取访问 IP
base 复制代码
docker compose ps
  1. 浏览器访问靶场地址(如http://127.0.0.1:8080),作为本次目录扫描目标。
    方式 1:Kali 本机访问(127.0.0.1)

仅在 Kali 系统内部浏览器可用,容器映射端口直接本地回环访问

base 复制代码
http://127.0.0.1:8080

方式 2:物理主机(Windows/Mac)访问 Kali 靶场(推荐实操)

  1. Kali 终端输入 ip a,查看 Kali 本机局域网 IP,示例:192.168.200.131(此处以你的真实地址为准)
  2. 物理主机浏览器输入:
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
  1. -t 20

-t = --threads,设置并发扫描线程数

  • 数值 20:同时发起 20 个 HTTP 请求,加快扫描速度
  • 数值越大扫描越快,但容易触发服务器限流 / 403 封禁,本地靶场 20 属于安全区间
  1. -e php,txt,sql,bak

-e = --extensions,指定追加扫描的文件后缀

逗号分隔,工具会自动给字典内每条路径拼接这些后缀进行探测:

  • php:探测网站业务源码、后台页面(admin.phplogin.php
  • txt:探测说明文件、账号明文记录、robots.txt
  • sql:探测数据库备份文件(网站导出的数据库脚本)
  • bak:探测程序备份文件(index.bakconfig.bak,常泄露源码)

2.3.4 扫描结果判断标准
  1. 状态码 200 OK:路径真实存在,优先访问后台、数据库备份文件
  2. 状态码 301/302:页面存在跳转,大概率是管理登录页面
  3. 状态码 403 Forbidden:目录存在,但服务器禁止直接访问,存在进一步测试价值

dirsearch -h 作用:

打印工具全部参数说明,告诉你每个参数(-u/-t/-e/-w 等)的功能、用法,方便你写扫描命令、调整扫描规则。


合规提示:本节所有命令仅针对本地 Vulhub 内网靶场执行,禁止对任何未授权公网网站发起目录爆破扫描。


2.4 御剑目录扫描工具

2.4.1 工具介绍

御剑是一款国产目录扫描工具,内置大量适配国内场景的字典,对中文后台路径、国产 CMS 的扫描命中率较高。

  • 官方开源仓库https://github.com/foryujian/yjdirscan
  • 适用场景:针对国内 CMS(ThinkPHP、织梦、帝国等)的目录扫描,Windows 环境下 GUI 操作更友好,新手易上手

工具优势

  1. 字典适配国内场景:内置大量中文后台路径、国产 CMS 专属字典,针对 ThinkPHP、织梦、帝国 CMS 等 PHP 站点,扫描命中率高于 Dirsearch;
  2. 双端兼容:Windows 提供可视化 GUI 界面,新手零门槛上手;Linux/Kali 环境支持命令行批量扫描;
  3. 原生支持备份后缀探测:自带中文管理目录、备份文件字典,适配 Vulhub 本地 PHP 靶场练习。

2.4.2 基本操作

御剑采用经典的多标签页布局,顶部为功能导航栏,左侧为目标地址管理区,中间为扫描结果展示区,右侧为字典和参数配置区,底部为操作按钮和进度条,整体界面简洁直观,新手容易上手。

完整操作步骤如下:

  1. 启动工具

下载解压后,双击 御剑.exe 启动程序,默认进入「批量扫描后台」标签页,这是最常用的目录扫描功能界面。

界面区域说明:

  • 顶部功能区:包含「开始扫描」「停止扫描」「继续扫描」「暂停扫描」四个核心操作按钮,以及扫描模式、线程数、超时时间、状态码筛选等参数配置
  • 左侧地址区:用于管理待扫描的目标域名列表,支持批量添加多个目标
  • 中间结果区:实时展示扫描发现的有效路径,包含 ID、地址、HTTP 响应状态码三列
  • 右侧字典区:列出内置的字典文件,勾选即表示使用该字典参与扫描
  • 底部操作区:「添加」「删除」「清空」三个按钮,用于管理左侧的目标地址列表

说明:以下操作在 Windows 物理机上完成,因此靶场地址使用 Kali 局域网 IP。


  1. 添加目标地址与选择字典

点击左下角的「添加」按钮,在弹出的输入框中填入靶场地址 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 重定向状态码可按需勾选

  1. 开始扫描

点击顶部「开始扫描」按钮,工具立即按照选定的字典和参数开始批量探测。

扫描过程中可以观察到以下变化:

  • 扫描信息栏:实时显示当前正在探测的完整 URL 路径,方便了解扫描进度
  • 扫描速度:右侧显示每秒请求数,本地靶场通常可以达到每秒几千甚至上万次请求
  • 结果列表:每发现一条有效路径,就会实时添加到中间的结果表格中
  • 底部进度条:绿色进度条从左向右推进,直观展示整体扫描进度

💡 小技巧:扫描过程中可以随时点击「暂停扫描」临时中断,之后点击「继续扫描」从中断处接着扫,不用从头开始。如果发现目标站点开始返回 403 或连接超时,说明可能被 WAF 封禁了,及时点击「停止扫描」,等一段时间后降低线程数再试。


  1. 查看与验证扫描结果

扫描完成后,底部绿色进度条走满,扫描信息栏显示「扫描完成...」,中间结果表格会列出所有探测到的有效路径。

结果列表解读:

字段 说明
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 渗透信息收集系列的第二篇,想看前文或后续内容,可以关注我的专栏持续更新。

🔖 建议收藏:信息收集是渗透测试的基本功,工具命令多、参数杂,建议收藏本文随时查阅。

相关推荐
m0_7381207220 小时前
PHP代码审计基础——超全局变量(三)
开发语言·安全·网络安全·php
seven_stars_1 天前
CVE-2018-19518PHP漏洞
linux·浏览器·kali
其实防守也摸鱼2 天前
运维--怎么看接口的请求和返回
运维·学习·网络安全·网络攻击模型·burpsuite·攻防对抗·蓝队
菩提小狗2 天前
每日安全情报报告 · 2026-07-09
网络安全·漏洞·cve·安全情报·每日安全
数据知道2 天前
DNS 安全攻防:缓存投毒、DNS 隧道与检测实战
安全·网络安全·缓存·缓存投毒
其实防守也摸鱼3 天前
蓝队相关知识学习(1)---常用堡垒机和服务器
服务器·功能测试·学习·网络安全·网络攻击模型·攻防对抗·蓝队
学逆向的3 天前
汇编——数据存储模式
开发语言·汇编·网络安全
阿米亚波3 天前
【EVE-NG 实战】防火墙基础(VLAN · VRRP · NAT · ACL · 静态路由)
运维·网络·笔记·网络协议·计算机网络·网络安全·运维开发
txg6663 天前
网络安全领域简报(2026年7月3日—10日)
安全·web安全·网络安全