CDN的全称是 Content Delivery Network, 即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在CDN服务,将会影响到后续的安全测试过程。
如何判断网站是否存在 CDN 服务
ping 命令 在线 ping 多个地点Ping服务器,网站测速 - 站长工具
可以看到有多个IP地址应答 存在CDN
nslookup [目标 网站域名]
可以看到解析到多个IP地址
常见 CDN 绕过技术
1.子域名查询
可以看到 baidu.com 与 www.baidu.com 解析 是不同的
2.邮件服务
3.国外地址请求
一些站点由于服务对象基本在国内,或者成本原因,在国外一些地方没有CDN服务,如果用国外的服务器去请求站点域名,则会访问到站点的真实地址。这里用到一款全球ping扫工具,热度越低的国家,效果越好。
IPIPtools:全球 CDN 服务商查询_专业精准的IP库服务商_IPIP
4.遗留文件
一些站点在搭建之初,会用一些文件测试站点,例如“phpinfo()”文件,此类文件里就有可能包含了真实的IP地址。可以利用Google搜索引擎搜索关键字“site:xxx.com inurl:phpinfo.php”,搜索站点是否有遗留文件。
5.扫描全网
fuckcdn (https://gitee.com/mengqingyu100/fuckcdn/repository/blazearchive/master.zip)
6.特定搜素引擎(钟馗之眼 FOFA网络空间测绘系统 撒旦)
搜索特定文件------>站点的icon文件,也就是网站的图标,一般查看网页源代码可以找到,格式大致“http://www.xx.com/favicon.ico”。在shodan搜索网站icon图标的语法为:http.favicon.hash:hash值,hash是一个未知的随机数,我们可以通过shodan语法来查看一个已经被shodan收录的网站的hash值,来进一步获取到所有带有某icon的网站。
shadan : http.favicon.hash:[hash值] (需要会员)
fofa : icom_hash= "[hash值]" (需要会员)
python 计算hsah值 代码
import mmh3
import requests
response = requests.get('https://www.csdn.net/favicon.ico')
favicon = response.content
hash = mmh3.hash(favicon)
print('http.favicon.hash:' + str(hash))
7.域名解析历史记录
站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP。
DNSdb:https://dnsdb.io/zh-cn/