#关于CDN
-
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路
容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN = 镜像 +缓存+整体负载均衡 -
对于一个没有部署cdn的站点,网络请求过程是这样的:
1.用户在本地浏览器输入url
2.浏览器向本地DNS服务器请求域名的解析Hosts
3.本地dns服务器中如果缓存有这个域名的解析,则直接响应用户的解析请求
4.本地dns服务器中如果没有这个域名解析结果的缓存,则以递归的形式向整个运营商dns系统请求解析,然后将结果反馈给浏览器
5.浏览器得到域名解析结果,选择相应的ip地址进行访问请求
6.服务器返回请求的内容 -
对于一个部署cdn的站点,网络请求过程是这样的:
1.用户在本地浏览器输入url
2.经过本地dns系统的解析,dns系统会将解析权交给cname指向cdn专用的dns服务器
3.dns服务器根据全局负载均衡系统和区域负载均衡系统的的响应将缓存服务器的ip地址给用户
4.用户发送请求
5.服务器返回请求内容
##CDN对渗透测试的影响 -
cdn会隐藏服务器真实的ip地址,无法对目标网站的操作系统进行渗透,但cdn站点又可以理解为是目标站点的镜像站点(大多数都是静态cdn加速),拥有相同的网站架构,且cdn服务器可与站点服务器进行交互,因此sql注入,xss等漏洞的挖掘并不受太大影响。
-
cdn的供应商往往会架设强大的云waf,对渗透造成障碍
##如何识别站点是否使用CDN -
多地ping。如果从多个地点ping目标网站,ip一致可认为没有cdn,反之,则有。可使用如下网站。
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/ -
windows下nslookup命令。如果一个域名对应有多个ip,则可能有cdn。
-
在线站点。
http://www.cdnplanet.com/tools/cdnfinder/
http://www.ipip.net/ip.html
##如何得到网站真实ip -
查找网站历史dns解析记录。可使用如下站点
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
http://toolbar.netcraft.com/site_report?url=
http://viewdns.info/ -
查找同服务器子域名的ip(对于有些流量较小的子域名,为了节约成本并不会架设cdn)。
-
让服务器主动连接。fopen/file_get_contents函数,XSS盲打,命令执行反弹shell,ssrf等等去访问我们自己的服务器,查找访问日志。
-
目标敏感文件泄露ip。如phpinfo中有主机ip,github中泄露ip
-
使用zgrab工具查找
https://github.com/zmap/zgrab -
注册邮件中可能会有真实ip信息,订阅功能等。
-
从国外服务器ping目标站点(cdn线路只针对国内用户的情况下)
-
社工站点管理员的cdn账号
在得到真实ip后,修改本地主机的hosts文件,将域名指向真实ip即可。
reference:
https://www.t00ls.net/articles-36160.html