CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器, 通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所 需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过 程中,若目标存在 CDN 服务,将会影响到后续的安全测试过程。
我们该如何判断目标存在 CDN 服务呢? 2.1 用超级ping工具,若目标存在多个IP的话,很有可能采用了CDN服务 爱站网超级ping工具:https://ping.aizhan.com/ 站长之家超级ping工具:http://ping.chinaz.com/
2.2 还可以使用Windows命令查询:nslookup,若目标存在多个IP的话,就很有可能有CDN服务
2.3 使用工具查询,工具地址如下 CDN Planet:https://www.cdnplanet.com/tools/cdnfinder/
某些企业业务线众多,亦或者成本因素,有些站点的主站使用了CDN服务,或者部分域名使用了CDN服务,某些子域名可能未使用。 当用超级ping检测 www.xxx.com 时,显示有4个IP
当用超级ping检测 xxx.com 时,显示只有1个IP,则有可能是目标的真实IP
一些站点的邮箱服务可能来自于真实的IP,当给你发邮件时,你可以通过邮件源代码或者邮件头查看到目标的真实IP。
一些站点由于服务对象基本在国内,或者成本原因,在国外一些地方没有CDN服务,如果用国外的服务器去请求站点域名,则会访问到站点的真实地址。这里用到一款全球ping扫工具,热度越低的国家,效果越好。 IPIPtools:https://tools.ipip.net/cdn.php
一些站点在搭建之初,会用一些文件测试站点,例如“phpinfo()”文件,此类文件里就有可能包含了真实的IP地址。可以利用Google搜索引擎搜索关键字“site:xxx.com inurl:phpinfo.php”,搜索站点是否有遗留文件。
这里的特定文件,指的是站点的icon文件,也就是网站的图标,一般查看网页源代码可以找到,格式大致“http://www.xx.com/favicon.ico”。在shodan搜索网站icon图标的语法为:http.favicon.hash:hash值,hash是一个未知的随机数,我们可以通过shodan语法来查看一个已经被shodan收录的网站的hash值,来进一步获取到所有带有某icon的网站。 那么问题来了,如何获取icon的hash值呢?
3.5.1 python工具
3.5.2 利用FOFA间接获取
FOFA高级会员可以直接搜索icon,但是一般用户可以直接搜索icon,它会返回icon的hash值 然后再利用shodan的语法:http.favicon.hash:hash值,就可以进行搜索啦 这里我朋友帮写了一个工具,一键生成,万岁
站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP。 DNSdb:https://dnsdb.io/zh-cn/