Web安全信息收集--总

Web 安全信息收集:要收集什么、分几个维度

本章定位 :这是信息收集章节的总览导引。在深入子域名挖掘、端口扫描、目录爆破这些具体技术之前,先回答两个最基础的问题------信息收集到底要收集什么?这些内容可以分成几个维度?本章只给框架和关系,不展开技术细节。


一、信息收集的本质

在讲"收集什么"之前,先讲"为什么要收集"。

一句话定义 :信息收集的本质,是持续缩小下一步攻击目标的搜索范围。

1.1 为什么不能直接挖漏洞

很多人对信息收集的印象是"还没开始挖漏洞时的准备工作",这是误解。信息收集贯穿整个渗透过程:

阶段 不做信息收集会怎样
开局 不知道目标有多少资产,盲目测试一个域名
中期 不知道发现了什么技术栈,无法对应已知漏洞
后期 找到一个口令却不知道能拿到什么权限
深入 进了一台服务器却不知道内网延伸到哪里

关键认知:信息收集不是"挖漏洞前的准备",而是"贯穿全程的导航"。每一步测试的结果,都反过来成为下一步信息收集的输入。

1.2 为什么要分维度

不分维度的信息收集会变成"散点收集"------抓到什么是什么,彼此没有关系。分维度的意义在于:

  1. 不遗漏:每个维度对应一类信息,按维度过一遍能保证覆盖
  2. 能连成攻击链:前一维度的输出往往是后一维度的输入
  3. 可衡量:工具按维度划分模块,覆盖度清晰可衡量

这就是为什么要把信息收集内容显式分维度------不是为了分类而分类,而是为了让收集到的信息能结构化、能互相衔接、能形成攻击链。


二、四大类总览

Web 安全信息收集的内容,可以归并成 4 大类、10 个维度。先看四大类建立框架,再在每一类下展开具体维度。

2.1 四大类一览

大类 回答的问题 包含的维度
资产范围类 目标有哪些资产、资产在哪 目标范围、域名与子域名、IP 与端口资产
应用入口类 应用长什么样、用什么搭的 Web 应用入口、技术栈与组件、敏感信息泄露
权限业务类 应用怎么用、谁能用、规则是什么 账号体系与权限、业务逻辑信息
漏洞线索类 哪里可能有问题、背后还有什么 潜在漏洞线索、Web 背后的基础设施

2.2 四大类的递进关系

这四大类不是并列的,而是有递进关系:

复制代码
资产范围类 → 应用入口类 → 权限业务类 → 漏洞线索类
   │            │            │            │
   │            │            │            └─ 哪里可能有问题
   │            │            └─ 应用怎么用、谁能用
   │            └─ 应用长什么样
   └─ 目标有什么
  • 资产范围类回答"目标在哪、有什么"------是信息收集的起点
  • 应用入口类回答"应用长什么样、用什么搭的"------基于资产范围继续往里挖
  • 权限业务类回答"应用怎么用、谁能用"------基于入口继续测权限和业务
  • 漏洞线索类回答"哪里可能有问题、背后还有什么"------综合前面所有信息找漏洞线索

2.3 四大类与十维度的结构图

#mermaid-svg-5Dg0Q015DwSEOLl6{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-5Dg0Q015DwSEOLl6 .error-icon{fill:#552222;}#mermaid-svg-5Dg0Q015DwSEOLl6 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-5Dg0Q015DwSEOLl6 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .marker.cross{stroke:#333333;}#mermaid-svg-5Dg0Q015DwSEOLl6 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-5Dg0Q015DwSEOLl6 p{margin:0;}#mermaid-svg-5Dg0Q015DwSEOLl6 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster-label text{fill:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster-label span{color:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster-label span p{background-color:transparent;}#mermaid-svg-5Dg0Q015DwSEOLl6 .label text,#mermaid-svg-5Dg0Q015DwSEOLl6 span{fill:#333;color:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .node rect,#mermaid-svg-5Dg0Q015DwSEOLl6 .node circle,#mermaid-svg-5Dg0Q015DwSEOLl6 .node ellipse,#mermaid-svg-5Dg0Q015DwSEOLl6 .node polygon,#mermaid-svg-5Dg0Q015DwSEOLl6 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .rough-node .label text,#mermaid-svg-5Dg0Q015DwSEOLl6 .node .label text,#mermaid-svg-5Dg0Q015DwSEOLl6 .image-shape .label,#mermaid-svg-5Dg0Q015DwSEOLl6 .icon-shape .label{text-anchor:middle;}#mermaid-svg-5Dg0Q015DwSEOLl6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .rough-node .label,#mermaid-svg-5Dg0Q015DwSEOLl6 .node .label,#mermaid-svg-5Dg0Q015DwSEOLl6 .image-shape .label,#mermaid-svg-5Dg0Q015DwSEOLl6 .icon-shape .label{text-align:center;}#mermaid-svg-5Dg0Q015DwSEOLl6 .node.clickable{cursor:pointer;}#mermaid-svg-5Dg0Q015DwSEOLl6 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .arrowheadPath{fill:#333333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5Dg0Q015DwSEOLl6 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-5Dg0Q015DwSEOLl6 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5Dg0Q015DwSEOLl6 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster text{fill:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 .cluster span{color:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-5Dg0Q015DwSEOLl6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-5Dg0Q015DwSEOLl6 rect.text{fill:none;stroke-width:0;}#mermaid-svg-5Dg0Q015DwSEOLl6 .icon-shape,#mermaid-svg-5Dg0Q015DwSEOLl6 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-5Dg0Q015DwSEOLl6 .icon-shape p,#mermaid-svg-5Dg0Q015DwSEOLl6 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-5Dg0Q015DwSEOLl6 .icon-shape .label rect,#mermaid-svg-5Dg0Q015DwSEOLl6 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-5Dg0Q015DwSEOLl6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-5Dg0Q015DwSEOLl6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-5Dg0Q015DwSEOLl6 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 信息收集内容
资产范围类
应用入口类
权限业务类
漏洞线索类

  1. 目标范围
  2. 域名与子域名
  3. IP 与端口资产
  4. Web 应用入口
  5. 技术栈与组件
  6. 敏感信息泄露
  7. 账号体系与权限
  8. 业务逻辑信息
  9. 潜在漏洞线索
  10. Web 背后的基础设施

下面逐类逐维度展开,每个维度只讲两件事:收集什么 + 为什么要收集。


三、第一类:资产范围类

这一类回答:"目标有哪些资产、资产在哪"。是信息收集的起点------先搞清"有什么",再谈"怎么测"。

3.1 维度 1:目标范围

收集什么:

类别 具体内容
域名资产 主域名、所有子域名
IP 资产 IP 段和 CIDR
组织信息 企业名称、关联公司、品牌、备案主体
联系方式 官方邮箱后缀、手机号段
多端资产 移动 App、小程序、公众号
平台业务 开放平台、第三方业务、收购或关停的业务

为什么要收集:信息收集前必须先划边界。不划边界会收集到无关资产、测试授权外系统、遗漏重要关联业务。所有后续收集都要能映射回"是否属于目标"。

3.2 维度 2:域名与子域名

收集什么:

类别 具体内容
基础域名信息 根域名、子域名、泛解析、注册商、注册人、注册时间、DNSSEC
DNS 解析记录 A、CNAME、NS、MX、TXT、SOA、SRV、PTR
子域名用途 官网、管理后台、API、测试环境、运维平台、邮件系统、旧系统
历史记录 已下线业务、历史 IP、旧版后台、历史 CDN 回源、过期域名

为什么要收集:域名与子域名是 Web 信息收集中最基础、也是最重要的部分。子域名往往指向独立的服务、独立的资产、独立的攻击入口。子域名挖掘之所以是信息收集的第一步,正是因为它对应接入层------最外层、最被动、最容易批量采集。

3.3 维度 3:IP 与端口资产

收集什么:

类别 具体内容
IP 归属信息 归属组织、运营商、国家/地区、机房、是否云主机、是否 CDN、是否 WAF
常见关注端口 Web 端口、数据库端口、缓存端口、文件传输端口、邮件端口、远程管理端口、运维中间件端口
端口对应服务 服务名称、版本、是否公网暴露、是否默认配置、是否存在管理界面
非 HTTP 高价值资产 数据库、运维平台、容器编排、消息队列、大数据组件

为什么要收集:域名只是入口,最终很多攻击链会落到 IP、端口和服务。公网数据库和中间件经常比 Web 应用更容易直接获得系统权限------这就是为什么端口扫描是信息收集里最"硬"的部分。


四、第二类:应用入口类

这一类回答:"应用长什么样、用什么搭的、有没有泄露"。基于资产范围类继续往里挖。

4.1 维度 4:Web 应用入口

收集什么:

类别 具体内容
目录和路径 后台、认证、用户中心、API、上传、备份、安装、测试、文档
敏感文件类型 备份文件、压缩包、配置文件、日志、源码包、数据库导出
重点 URL 参数 id/file/url/cmd 等暗示后端行为的参数
API 接口类型 RESTful、GraphQL、SOAP、WebSocket、上传、回调、OAuth

为什么要收集:这一步解决"目标到底有哪些页面、接口和功能"。URL 参数本身就是一张"后端功能清单"------参数名是后端逻辑的"自白书",直接暗示可能的漏洞类型。

4.2 维度 5:技术栈与组件

收集什么:

层级 常见组件
Web 服务器 Nginx、Apache、IIS、Tomcat、OpenResty
后端语言 Java、PHP、Python、Node.js、.NET、Go
后端框架 Spring、Struts、ThinkPHP、Laravel、Django、Express
前端技术 Vue、React、Angular、Next.js、jQuery
中间件 Weblogic、WebSphere、JBoss
数据库 MySQL、PostgreSQL、MongoDB、Redis
CMS WordPress、Drupal、帝国、织梦
第三方服务 CDN、WAF、对象存储、短信、支付、SSO

为什么要收集 :技术栈识别的目的是缩小漏洞范围、判断是否存在已知漏洞、选择合适的测试方式 。一个 Server 头或一个 Cookie 名,往往就能精确定位到具体框架甚至版本,从而判断是否存在已知 CVE。

4.3 维度 6:敏感信息泄露

收集什么:

类别 具体内容
源码与前端信息 JS 文件、Source Map、打包文件、注释、调试信息、硬编码地址
配置文件泄露 .env、config.php、database.yml、application.properties
版本控制泄露 .git/、.svn/、.hg/
目录遍历 备份目录、日志目录、上传目录可浏览
错误页面与调试 绝对路径、SQL 语句、堆栈、内部 IP、框架版本
文档与接口信息 Swagger、Postman 集合、在线文档、SDK 示例
历史泄露 GitHub、Gitee、Wayback Machine、Paste 网站、招聘需求

为什么要收集 :泄露的敏感信息往往直接决定攻击难度。一个 .git/ 泄露能还原完整源码,一个 Source Map 能暴露全部接口,一个报错能定位技术栈------这些"意外金矿"经常让攻击成本断崖式下降。


五、第三类:权限业务类

这一类回答:"应用怎么用、谁能用、规则是什么"。基于应用入口继续测权限和业务。

5.1 维度 7:账号体系与权限

收集什么:

类别 具体内容
用户体系 普通用户、VIP、企业用户、内部员工、管理员、审计人员
注册与认证 是否开放注册、用户名规则、验证码类型、是否支持三方登录、是否多因素
会话管理 Cookie 属性、Token 类型、刷新机制、单点登录范围、JWT 字段
权限结构 普通用户能否访问管理接口、ID 是否可枚举、接口是否校验资源归属

为什么要收集 :现代 Web 漏洞很多已经不是单纯的"代码漏洞",而是权限模型漏洞。越权、未授权、横向移动这些高频问题,根因都是权限模型设计缺陷。不收集权限信息,就找不到这类漏洞。

5.2 维度 8:业务逻辑信息

收集什么:

类别 具体内容
常见业务模块 登录注册、个人中心、订单交易、支付、充值提现、优惠券、积分、签到、抽奖、邀请
业务规则 哪些操作要登录/实名/付费、哪些可重复提交、退款限制、优惠券叠加、邀请奖励

为什么要收集:业务逻辑漏洞通常不是"程序出错",而是"规则可以被绕过"。必须把规则先收集完整,才能找到规则之间的缝隙。这就是为什么业务逻辑漏洞被叫做"最难自动化检测的漏洞"------它需要先理解规则。


六、第四类:漏洞线索类

这一类回答:"哪里可能有问题、背后还有什么"。综合前面所有信息找漏洞线索和延伸面。

6.1 维度 9:潜在漏洞线索

收集什么:

漏洞类型 线索特征
注入类 SQL 参数、搜索框、排序参数、文件读取参数、命令执行参数
文件类 上传功能、文件解析、文件下载、压缩包处理、模板渲染
反序列化 Java 对象参数、序列化 Content-Type、特定框架指纹、RPC 接口
SSRF URL 参数、图片抓取、网页预览、导入外部内容、Webhook
XSS 搜索框、评论区、留言板、个人资料、富文本编辑器、URL 回显
越权 用户 ID、订单 ID、企业 ID、文件 ID、手机号参数
逻辑漏洞 验证码、支付金额、数量参数、订单状态、签名参数、优惠券码

为什么要收集:信息收集不直接等于挖漏洞,但会为漏洞测试提供线索。参数名、功能点、技术栈指纹,每一个都是漏洞线索------把它们收集齐,后续漏洞测试就有了明确靶标。

6.2 维度 10:Web 背后的基础设施

收集什么:

类别 具体内容 安全关注点
CDN / WAF 服务商、配置规则 绕过思路、回源 IP 发现
云主机 实例、安全组 实例角色权限、元数据服务
对象存储 Bucket、域名绑定 Bucket 权限、匿名访问
容器 / K8s 镜像仓库、编排平台 镜像泄露、Dashboard 未授权
CI/CD 构建系统、流水线 凭据泄露、命令注入
微服务 / 网关 服务注册、网关配置 内部接口暴露
消息队列 / 缓存 Redis、RabbitMQ、Kafka 未授权访问、弱口令
云函数 / Serverless 函数计算、事件触发 权限过大、环境变量泄露
运维 / 监控 / 日志 监控平台、日志系统 未授权访问、信息泄露

为什么要收集:现代 Web 往往不是单一站点,而是一整套云环境。核心问题是:这个网站只是入口,还是背后整个云环境都在目标范围内?这就是为什么信息收集要往云环境深挖------Bucket、云函数、K8s Dashboard 这些"非 Web 应用资产",往往比 Web 应用本身更容易直接拿到权限。


七、信息收集的流程与阶段

前面讲了"收集什么",这一节讲"什么时候收集什么"。信息收集不是一次性动作,而是随渗透过程持续进行。

7.1 信息收集整体流程

#mermaid-svg-tmLQrP29ct4IL0Z2{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tmLQrP29ct4IL0Z2 .error-icon{fill:#552222;}#mermaid-svg-tmLQrP29ct4IL0Z2 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tmLQrP29ct4IL0Z2 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .marker.cross{stroke:#333333;}#mermaid-svg-tmLQrP29ct4IL0Z2 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tmLQrP29ct4IL0Z2 p{margin:0;}#mermaid-svg-tmLQrP29ct4IL0Z2 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster-label text{fill:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster-label span{color:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster-label span p{background-color:transparent;}#mermaid-svg-tmLQrP29ct4IL0Z2 .label text,#mermaid-svg-tmLQrP29ct4IL0Z2 span{fill:#333;color:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .node rect,#mermaid-svg-tmLQrP29ct4IL0Z2 .node circle,#mermaid-svg-tmLQrP29ct4IL0Z2 .node ellipse,#mermaid-svg-tmLQrP29ct4IL0Z2 .node polygon,#mermaid-svg-tmLQrP29ct4IL0Z2 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .rough-node .label text,#mermaid-svg-tmLQrP29ct4IL0Z2 .node .label text,#mermaid-svg-tmLQrP29ct4IL0Z2 .image-shape .label,#mermaid-svg-tmLQrP29ct4IL0Z2 .icon-shape .label{text-anchor:middle;}#mermaid-svg-tmLQrP29ct4IL0Z2 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .rough-node .label,#mermaid-svg-tmLQrP29ct4IL0Z2 .node .label,#mermaid-svg-tmLQrP29ct4IL0Z2 .image-shape .label,#mermaid-svg-tmLQrP29ct4IL0Z2 .icon-shape .label{text-align:center;}#mermaid-svg-tmLQrP29ct4IL0Z2 .node.clickable{cursor:pointer;}#mermaid-svg-tmLQrP29ct4IL0Z2 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .arrowheadPath{fill:#333333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tmLQrP29ct4IL0Z2 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tmLQrP29ct4IL0Z2 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tmLQrP29ct4IL0Z2 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster text{fill:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 .cluster span{color:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tmLQrP29ct4IL0Z2 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tmLQrP29ct4IL0Z2 rect.text{fill:none;stroke-width:0;}#mermaid-svg-tmLQrP29ct4IL0Z2 .icon-shape,#mermaid-svg-tmLQrP29ct4IL0Z2 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tmLQrP29ct4IL0Z2 .icon-shape p,#mermaid-svg-tmLQrP29ct4IL0Z2 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tmLQrP29ct4IL0Z2 .icon-shape .label rect,#mermaid-svg-tmLQrP29ct4IL0Z2 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tmLQrP29ct4IL0Z2 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tmLQrP29ct4IL0Z2 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tmLQrP29ct4IL0Z2 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 输出
输出
输出
输出
输出
输出
输入
输入
输入
输入
输入
开始
阶段1:范围界定
阶段2:资产发现
阶段3:应用探测
阶段4:深入分析
阶段5:漏洞线索整理
阶段6:基础设施延伸
目标范围清单
域名+IP+端口清单
目录+接口+指纹清单
权限+业务规则清单
漏洞线索清单
云环境+内网延伸清单
下一步:漏洞测试

流程图的关键在于虚线------前一阶段的输出会成为后一阶段的输入。这就是为什么信息收集要分阶段、按顺序做。

7.2 四阶段与维度映射

#mermaid-svg-LGpDXz40lk2NyIg3{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-LGpDXz40lk2NyIg3 .error-icon{fill:#552222;}#mermaid-svg-LGpDXz40lk2NyIg3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-LGpDXz40lk2NyIg3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-LGpDXz40lk2NyIg3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-LGpDXz40lk2NyIg3 .marker.cross{stroke:#333333;}#mermaid-svg-LGpDXz40lk2NyIg3 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-LGpDXz40lk2NyIg3 p{margin:0;}#mermaid-svg-LGpDXz40lk2NyIg3 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster-label text{fill:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster-label span{color:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster-label span p{background-color:transparent;}#mermaid-svg-LGpDXz40lk2NyIg3 .label text,#mermaid-svg-LGpDXz40lk2NyIg3 span{fill:#333;color:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 .node rect,#mermaid-svg-LGpDXz40lk2NyIg3 .node circle,#mermaid-svg-LGpDXz40lk2NyIg3 .node ellipse,#mermaid-svg-LGpDXz40lk2NyIg3 .node polygon,#mermaid-svg-LGpDXz40lk2NyIg3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-LGpDXz40lk2NyIg3 .rough-node .label text,#mermaid-svg-LGpDXz40lk2NyIg3 .node .label text,#mermaid-svg-LGpDXz40lk2NyIg3 .image-shape .label,#mermaid-svg-LGpDXz40lk2NyIg3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-LGpDXz40lk2NyIg3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-LGpDXz40lk2NyIg3 .rough-node .label,#mermaid-svg-LGpDXz40lk2NyIg3 .node .label,#mermaid-svg-LGpDXz40lk2NyIg3 .image-shape .label,#mermaid-svg-LGpDXz40lk2NyIg3 .icon-shape .label{text-align:center;}#mermaid-svg-LGpDXz40lk2NyIg3 .node.clickable{cursor:pointer;}#mermaid-svg-LGpDXz40lk2NyIg3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-LGpDXz40lk2NyIg3 .arrowheadPath{fill:#333333;}#mermaid-svg-LGpDXz40lk2NyIg3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-LGpDXz40lk2NyIg3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-LGpDXz40lk2NyIg3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LGpDXz40lk2NyIg3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-LGpDXz40lk2NyIg3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LGpDXz40lk2NyIg3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster text{fill:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 .cluster span{color:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-LGpDXz40lk2NyIg3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-LGpDXz40lk2NyIg3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-LGpDXz40lk2NyIg3 .icon-shape,#mermaid-svg-LGpDXz40lk2NyIg3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-LGpDXz40lk2NyIg3 .icon-shape p,#mermaid-svg-LGpDXz40lk2NyIg3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-LGpDXz40lk2NyIg3 .icon-shape .label rect,#mermaid-svg-LGpDXz40lk2NyIg3 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-LGpDXz40lk2NyIg3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-LGpDXz40lk2NyIg3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-LGpDXz40lk2NyIg3 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 资产清单
入口与指纹清单
权限与规则
后渗透阶段
9.潜在漏洞线索
10.Web背后的基础设施
深入阶段
7.账号体系与权限
8.业务逻辑信息
探测阶段
4.Web应用入口
5.技术栈与组件
6.敏感信息泄露
初始阶段
1.目标范围
2.域名与子域名
3.IP与端口资产

7.3 各阶段的收集重点

阶段 主要收集 目的
初始阶段 域名、子域名、IP、端口、Web 服务、标题、指纹 确定资产总量
探测阶段 目录和文件、后台入口、参数、接口、技术栈、报错 找到可测试入口
深入阶段 用户体系、权限模型、业务逻辑、敏感参数、接口调用关系 寻找授权、业务逻辑漏洞
后渗透阶段 配置文件、环境变量、数据库连接、AccessKey、云凭证、内部地址 判断能否进入服务器、云环境或内网

核心结论:四大类的递进关系,正好对应四个阶段的执行顺序。这就是为什么维度要这样归类------它不仅是分类,也是执行顺序。


八、维度间的关系:数据如何流动

这一节用一张图展示维度之间的数据流------前一维度的输出如何成为后一维度的输入。这是信息收集能"连成攻击链"的关键。

8.1 维度间数据流图

#mermaid-svg-cy0yypd5388veTQy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cy0yypd5388veTQy .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cy0yypd5388veTQy .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cy0yypd5388veTQy .error-icon{fill:#552222;}#mermaid-svg-cy0yypd5388veTQy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cy0yypd5388veTQy .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cy0yypd5388veTQy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cy0yypd5388veTQy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cy0yypd5388veTQy .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cy0yypd5388veTQy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cy0yypd5388veTQy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cy0yypd5388veTQy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cy0yypd5388veTQy .marker.cross{stroke:#333333;}#mermaid-svg-cy0yypd5388veTQy svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cy0yypd5388veTQy p{margin:0;}#mermaid-svg-cy0yypd5388veTQy .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-cy0yypd5388veTQy .cluster-label text{fill:#333;}#mermaid-svg-cy0yypd5388veTQy .cluster-label span{color:#333;}#mermaid-svg-cy0yypd5388veTQy .cluster-label span p{background-color:transparent;}#mermaid-svg-cy0yypd5388veTQy .label text,#mermaid-svg-cy0yypd5388veTQy span{fill:#333;color:#333;}#mermaid-svg-cy0yypd5388veTQy .node rect,#mermaid-svg-cy0yypd5388veTQy .node circle,#mermaid-svg-cy0yypd5388veTQy .node ellipse,#mermaid-svg-cy0yypd5388veTQy .node polygon,#mermaid-svg-cy0yypd5388veTQy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cy0yypd5388veTQy .rough-node .label text,#mermaid-svg-cy0yypd5388veTQy .node .label text,#mermaid-svg-cy0yypd5388veTQy .image-shape .label,#mermaid-svg-cy0yypd5388veTQy .icon-shape .label{text-anchor:middle;}#mermaid-svg-cy0yypd5388veTQy .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cy0yypd5388veTQy .rough-node .label,#mermaid-svg-cy0yypd5388veTQy .node .label,#mermaid-svg-cy0yypd5388veTQy .image-shape .label,#mermaid-svg-cy0yypd5388veTQy .icon-shape .label{text-align:center;}#mermaid-svg-cy0yypd5388veTQy .node.clickable{cursor:pointer;}#mermaid-svg-cy0yypd5388veTQy .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cy0yypd5388veTQy .arrowheadPath{fill:#333333;}#mermaid-svg-cy0yypd5388veTQy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cy0yypd5388veTQy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cy0yypd5388veTQy .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cy0yypd5388veTQy .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cy0yypd5388veTQy .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cy0yypd5388veTQy .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cy0yypd5388veTQy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cy0yypd5388veTQy .cluster text{fill:#333;}#mermaid-svg-cy0yypd5388veTQy .cluster span{color:#333;}#mermaid-svg-cy0yypd5388veTQy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cy0yypd5388veTQy .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cy0yypd5388veTQy rect.text{fill:none;stroke-width:0;}#mermaid-svg-cy0yypd5388veTQy .icon-shape,#mermaid-svg-cy0yypd5388veTQy .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cy0yypd5388veTQy .icon-shape p,#mermaid-svg-cy0yypd5388veTQy .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cy0yypd5388veTQy .icon-shape .label rect,#mermaid-svg-cy0yypd5388veTQy .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cy0yypd5388veTQy .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cy0yypd5388veTQy .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cy0yypd5388veTQy :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 域名
子域名解析
开放端口
子域名URL
目录与接口
技术栈指纹
敏感文件
泄露的配置/凭证
登录入口
权限结构
功能点
业务规则
非HTTP端口
漏洞线索
云环境延伸
1.目标范围
2.域名与子域名
3.IP与端口资产
5.技术栈与组件
4.Web应用入口
9.潜在漏洞线索
6.敏感信息泄露
10.Web背后的基础设施
7.账号体系与权限
8.业务逻辑信息

8.2 数据流解读

看这张图要抓住几条主线:

主线 1:资产发现链

复制代码
目标范围 → 域名子域名 → IP 端口 → 技术栈 → 漏洞线索
  • 目标范围给出域名
  • 域名解析得到 IP
  • IP 扫出端口
  • 端口和指纹识别技术栈
  • 技术栈对应已知漏洞线索

主线 2:应用入口链

复制代码
子域名 URL → Web 应用入口 → 敏感信息 → 基础设施
  • 子域名给出可访问 URL
  • URL 探测找到目录和接口
  • 目录扫描发现敏感文件
  • 敏感文件泄露基础设施信息

主线 3:权限业务链

复制代码
Web 应用入口 → 登录入口 → 账号权限 → 业务逻辑 → 漏洞线索
  • 应用入口暴露登录页
  • 登录页引出账号体系
  • 账号体系暴露权限结构
  • 业务功能暴露业务规则
  • 权限和规则共同指向逻辑漏洞

主线 4:循环回路

复制代码
基础设施延伸 → 目标范围
  • 基础设施延伸发现新的 IP 段、Bucket、子域名
  • 这些新资产回到目标范围,重新开始一轮收集

关键认知 :信息收集不是线性的,而是有回路的有向图。每一次深挖都可能发现新资产,新资产又触发新一轮收集。这就是为什么信息收集叫"持续缩小搜索范围"------每一轮都在缩小,但不会一次结束。


九、总结心法

把前面所有内容收拢,信息收集最重要的不是"收集得越多越好",而是始终问自己下面五个问题:

9.1 五个自问

问题 对应的维度
这个信息是否扩大了攻击面? 资产范围类
它指向哪个漏洞类型? 漏洞线索类
能否进一步获取身份、权限或数据? 权限业务类
它是否连接着云、容器或内网? 基础设施维度
根据目前信息,下一步最值得测试什么? 全维度综合
相关推荐
jimmyleeee2 小时前
大模型安全之三十九:幻觉防线---- AI 幻觉检测、治理与预防指南
人工智能·安全
梦帮科技3 小时前
可证伪性工程测评与生产部署红蓝对抗:压力测试、长尾鲁棒性与全生命周期安全质检守卫
人工智能·深度学习·神经网络·安全·机器学习·自然语言处理·压力测试
花青泽3 小时前
子域名基础01_地址与域名基础
web安全
花青泽4 小时前
子域名基础02_DNS解析流程_简单版
web安全
姜鱼问生5 小时前
deploy.sh 部署脚本:健康检查 + 自动回滚
安全·github
其实防守也摸鱼5 小时前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法
Black蜡笔小新5 小时前
EasyCVR从“人盯人”到“AI盯岗”:可视化大屏+智能告警,岗位管理一屏掌控
网络·安全·easycvr
kakakahahahaha5 小时前
电脑显示器无信号排查:HDMI/DP接口、独立显卡、内存与安全模式
windows·安全·电脑·笔记本电脑·内容运营·软件需求
花青泽6 小时前
子域名基础03_DNS解析流程_详细版
web安全