点击上方“蓝字”关注公众号获取最新信息! 本文作者:3had0w(贝塔安全实验室-核心成员) CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。 0x01:域名解析过程 传统访问:用户访问域名-->解析IP-->访问目标主机 传统访问:用户访问域名-->解析IP-->访问目标主机 简单模式:用户访问域名-->CDN节点-->真实IP-->目标主机 简单模式:用户访问域名-->CDN节点-->真实IP-->目标主机 360网站卫士:用户访问域名-->CDN节点(云WAF)-->真实IP-->目标主机 360网站卫士:用户访问域名-->CDN节点(云WAF)-->真实IP-->目标主机 注:目前场面上大多数CDN服务商都提供了云WAF的配置选项,内置了多种安全防护策略,可对SQL注入、XSS跨站、Webshell上传、后门隔离保护、命令注入、恶意扫描等攻击行为进行有效拦截。 1、将域名的NS记录指向CDN厂商提供的DNS服务器。 1、将域名的NS记录指向CDN厂商提供的DNS服务器。 2、给域名设置一个cname记录,将它指向CDN厂商提供的另一个域名。 2、给域名设置一个cname记录,将它指向CDN厂商提供的另一个域名。 利用“全球Ping”快速检测目标网址是否存在CDN,如果得到的IP归属地是某CDN服务商,或者每个地区得到的IP地址都不一样则说明可能存在CDN,可用以下几个网站检测! (1) phpinfo等探针找到真实IP (2) 网站根域或子域找到真实IP (3) 利用邮件服务器找到真实IP (4) 域名历史解析记录找到真实IP 查询目标域名历史解析记录可能会找到部署CDN前的解析记录(真实IP地址),可用以下几个网站查询。 (5) FOFA查询网站标题找到真实IP 利用“FOFA网络空间安全搜索引擎”搜索网站源代码中的title标签内容即可得到真实IP地址。 (6) Censys查询SSL证书找到真实IP 利用“Censys网络空间搜索引擎”搜索网站的SSL证书及HASH,在https://crt.sh上查找目标网站SSL证书的HASH,然后再用Censys搜索该HASH即可得到真实IP地址。 (7) 自建CDN节点服务器找到真实IP 这篇笔记当时没有记录下来,其实就是MS17-010刚出来时很多机器都还没打补丁,批量过程中打了一台别人自建的CDN节点服务器,然后在里边发现很多解析到这边的IP地址,其实这些IP地址就是某些网站的真实IP,所以说这种方法也算是一种思路吧,但是得先拿到这台CDN节点服务器的权限。 注:一些免费或自建CDN流量都不会很多,可以用DDOS攻击将其流量耗尽后即可显示出真实IP地址。 (8) 分析目标C段来简单判断真实IP 网站域名 真实IP地址 CDN节点IP地址 111.test.com(目标) 192.168.1.10 8.8.8.8 222.test.com 192.168.1.11 9.9.9.9 333.test.com 192.168.1.12 没有CDN 假如目标站111.test.com解析在192.168.1.10,title:90sec社区,通过查询333.test.com这个子域名得到333的真实IP地址192.168.1.12,然后扫描192.168.1.x 整个C段,扫到192.168.1.10这个IP后发现一个title为“90sec社区”的网站,域名也是111.test.com后就能确定192.168.1.10是它的真实IP地址了,虽然这种方法没有实践过,但肯定是有这种情况的,在遇到时可以尝试一下? 敏感信息泄露:phpinfo、Apache status和Jboss status敏感信息泄露,网页源代码泄露,SVN、Github信息泄露等。 (10) 通过社工CDN控制台找到真实IP (11) Zmap全网扫描及F5 LTM解码法 这两种方法都是前辈们写的,个人感觉较为复杂,并没有实践测试过,不知道是否真可行? 更好的学习氛围, 欢迎加入我们的知识星球!