CDN 判断与测试对象确认
CDN 用分布式边缘节点代理用户请求,所以域名解析出来的通常是边缘节点 IP,而不是源站。判断是否使用 CDN 决定两件事:测试对象到底是 CDN 入口还是源站,以及测试流量会不会被 CDN 自带的 WAF 拦截。绕开 CDN 直连源站属于典型的超范围行为:授权测什么就测什么,即使技术上能找到源站也不能自己接上去。
基本信息
| 判断线索 | 多个解析 IP、响应头厂商特征、分地域解析差异 |
|---|---|
| 目标确认 | 由客户书面确认测 CDN 入口、回源地址还是两者 |
| 纪律 | 不主动寻找、扫描或直连源站 |
| 附带影响 | 限速、缓存与封禁策略会改变测试方法 |
典型使用场景
- 项目启动时确认测试对象形态,避免把结果做在不正确的目标上
- 解释「扫描到的 IP 与客户台账不一致」:多数是 CDN 边缘节点
- 与客户约定 WAF 拦截阈值与解封联系人,防止测试中途中断
- 报告里说明测试经过 CDN:缓存类与限速类问题在直连时表现不同
- 客户要求改测源站时,先取到书面确认再调整范围
确认流程
确认流程
dig +short example.com # 多次解析,观察 IP 数量是否远多于一个
dig +short example.com @8.8.8.8 # 换解析器对比,结果不同多为 CDN 调度
curl -sI https://example.com/ | head -20 # 抓响应头,找边缘节点与缓存字段
# 与客户确认:测试对象是 CDN 入口还是源站;有 CDN 时约定限速与解封路径
# 不确定就停下来书面确认,不要自行判断后继续现象与判断
| 现象 | 通常含义 | 处置 |
|---|---|---|
| 解析到多个同厂商 IP | 使用了 CDN | 以 CDN 入口作为测试对象 |
| 响应头含缓存与边缘节点标识 | 存在共享缓存层 | 缓存类验证必须先与客户约定窗口 |
| 证书 CN 与业务域名不一致 | 边缘节点通用证书 | 不能据此判断站点配置异常 |
| 不同地域解析结果不同 | 就近调度 | 记录解析时间与位置,便于复盘 |
「找源站」是越界行为的典型:即使找到了,未经书面授权直连测试,性质等同未授权测试,与漏洞本身无关。
经过 CDN 的站点,高频请求会被 WAF 按出口 IP 封禁:项目启动前就要谈好限速口径与解封流程,否则测试会被迫中断。