思考笔记 | 为什么需要“获取CDN后面的真实IP”

问题思考:

  1. 为什么需要获取CDN后面的真实IP?
  2. 有哪些安全漏洞的验证会受到影响?
  3. 如何获得CDN后面的真实IP?

CDN(内容分发网络)会将网站内容缓存到全球各地的服务器,隐藏原始服务器的真实IP。在安全测试中,测试的对象是CDN还是真实IP,会影响到漏洞验证的结果。

有哪些场景/漏洞会受到影响?

对纯前端逻辑漏洞(如业务逻辑错误、某些XSS)可能没有影响,但对于依赖服务器响应、网络拓扑、后端交互的漏洞(SSRF、某些RCE、缓存投毒等)会影响到漏洞利用成功与否。

场景 使用CDN域名测试 使用真实源站IP测试 影响程度
端口与服务探测 只能看到CDN的端口 可发现全端口(数据库、SSH等)
Web漏洞利用 (如SSRF) 请求可能被CDN闭环,测试失败 可直接触达内部/后端服务
绕过WAF规则 所有流量被过滤和监控 可能直接面对无防护的源站
访问非常规路径 可能被CDN规则阻挡 可能直接暴露管理后台等
遗留的"废弃"资产 不会被发现 可能发现未维护的旧系统

为什么需要获取真实IP?

  • 对端口服务的探测影响:使用nmap对CDN的IP扫描时,大概率只能看到CDN提供商开放的少数端口(如80, 443), 而无法发现源站服务器上可能暴露的数据库端口(3306, 6379)、管理后台(8080)、SSH(22)、或老旧易受攻击的服务。 对真实IP的端口扫描可以扩大潜在攻击面;
  • **绕过集成在CDN中的WAF/安全策略:**许多公司将Web应用防火墙集成在CDN中,找到真实IP可能暴露未受保护的服务。例如,源站IP的8080端口可能运行着Jenkins、Weblogic等管理界面,这些界面没有经过CDN,因此也绕过了WAF;
  • **特定Web漏洞的测试受CDN的影响:**例如应用存在SSRF漏洞时,如果让服务器去请求它的"公网域名",这个请求很可能被CDN解析到CDN节点,形成回环,无法触达内网系统;
  • 查找"非标准"接口目录:CDN配置通常是"按需缓存",并非所有路径和内容都会被CDN代理。通过域名 访问一些非常规使用的接口目录(例如/admin/, /backup/)可能会被CDN拒绝或返回错误,但通过真实IP访问可以直接打开;
  • 查找过程中有机会发现"废弃"的遗留机器:企业的网络架构会发生变化,可能曾经有aaa.example.com直接解析到IP地址A,后来才接入CDN,将解析改为CDN的CNAME记录,但是旧的IP地址A可能还在互联网上,指向一台"废弃"的遗留机器。在查找真实IP的过程中,通过历史记录找到的IP,有可能指向这样的一台机器,可以作为测试的切入点。

如何寻找真实IP?

  • **查找历史DNS记录:**查看DNS历史记录,可能保存了CDN部署前的A记录;
  • 查找未接入CDN的子域名: 主站用了CDN,但dev.example2.commail.example2.com、test.example2.com等子域名可能没有使用CDN,仍然指向真实IP;
  • 利用 SSL/TLS 证书寻找关联 IP **:**查找同一组织签发的其他SSL证书,其关联的域名可能指向真实IP;
  • **第三方内容引用:**网站的JavaScript文件、图片等可能从非CDN的地址加载;
  • 其他DNS记录类型:查询其他记录类型,如MX、TXT、NS等,也有可能指向真实IP。

如何判断IP是否属于CDN?

  • 检查 IP 是否属于已知 CDN 的 IP 段;
  • 查看CNAME记录: 如果子域名 CNAME 指向 xxx.cloudfront.net、xxx.fastly.net等,则明显使用了 CDN;
  • 观察HTTP响应头:检查响应头中的server、X-Cache、Via等字段中是否有CDN标识(cloudflare, akamai);
  • C段排除法:网络空间引擎中,如果是CDN的话,C端大概会包含大量杂乱资产(查询语法示例:ip="xxx.xxx.xxx.xxx/24")

拓展阅读

https://blog.csdn.net/weixin_45802999/article/details/145185998(有实例参考)

相关推荐
一轮弯弯的明月1 天前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
航Hang*1 天前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
zjnlswd1 天前
tkinter学习案例--笔记代码
笔记·学习
独小乐1 天前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
无聊大侠hello world1 天前
Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
人工智能·笔记·学习
CheerWWW1 天前
C++学习笔记——箭头运算符、std::vector的使用、静态链接、动态链接
c++·笔记·学习
网络安全许木1 天前
自学渗透测试第12天(渗透测试流程与DVWA部署)
web安全·网络安全·渗透测试
ZhiqianXia1 天前
Pytorch 学习笔记(17):decompositions.py —— 算子分解的百科全书
pytorch·笔记·学习
xian_wwq1 天前
【学习笔记】大模型如何理解图片
笔记·学习
talen_hx2961 天前
《零基础入门Spark》学习笔记 Day 13
笔记·学习·spark