CDN的全称是Content Delivery Network,翻译成中文就是内容分发网络。CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取内容,降低网络延迟,提高访问速度。简单来讲,CDN是用来进行加速的,它可以让用户更快获得所需的数据。
举个例子,某个网站的服务器在北京,如果深圳的用户想要获取服务器上的数据,就需要跨越很远的距离,由于传输速度和路由转发等因素,就会导致访问速度非常缓慢。但如果我们在深圳建立一个CDN服务器,上面缓存了一些服务器数据,那么深圳用户只需要访问这个CND的服务器就能获取相关的内容,这样速度就提升了很多。
1.传统访问:用户访问域名–>解析服务器 IP–>访问目标主机
2.普通 CDN:用户访问域名–>CDN 节点–>真实服务器 IP–>访问目标主机
3.带 WAF 的 CDN:用户访问域名–>CDN 节点(WAF)–>真实服务器 IP–>访问目标主 机
实践意义:拿到web服务器的真实ip,如果对方设置了CDN节点,那我们首先拿到的ip地址就是节点的IP地址,我们需要利用技巧绕过CDN拿到真实服务器的IP地址,才有助于我们进行渗透测试
#CDN 配置:
配置 1:加速域名-需要启用加速的域名
配置 2:加速区域-需要启用加速的地区
配置 3:加速类型-需要启用加速的资源
1.加速域名
(1)加速泛域名,*.example.com 简单来说不管前缀是什么,只要后面都是example.com的子域名都会添加CDN加速节点
(2)指定域名,www.example.com 只加速这个网站,只有访问这个网站会访问到CDN节点,其他的子域名还是真实ip
2.业务类型
用户对网站的图片,视屏,大文件,都会通过CDN进行加速,防止了网站信息呈现慢,卡等现象
3.加速区域
如何判定是否开启CDN?
1.超级ping
网站测速|网站速度测试|网速测试|电信|联通|网通|全国|监控|CDN|PING|DNS 17CE.COM
如果发现各地区对网站ping的IP地址不同,说明开启了CDN
2.绕过CDN技巧
<1>. 子域名入手
一个网站服务器的域名是可以有很多子域名,例如,一个web服务器有两个域名1.www.dafei.com 2.test.dafei.com,只在www.dafei.com开启CDN,那我通过www.dafei.com追溯到子域名test.dafei.com,通过简单的ping就可以找到真实的ip
<2>. 利用网站漏洞
如果目标站点存在漏洞,这就没办法避免了。例如phpinfo敏感信息泄露、Apache status和Jboss status敏感信息泄露、网页源代码泄露、svn信息泄露信、github信息泄露等。
若存在web漏洞,服务器主动与我们发起请求连接,我们也能获取目标站点真实ip。例如xss、ssrf、命令执行反弹shell等。
3. 历史DNS记录
查询ip与域名绑定历史记录,可能会发现使用CDN之前的目标ip。
https://dnsdb.io/zh-cn/ https://x.threatbook.cn/ http://toolbar.netcraft.com/site_report?url= http://viewdns.info/ http://www.17ce.com/ https://community.riskiq.com/ http://www.crimeflare.com/cfssl.html
4.CDN本身入手
若从CDN本身入手,比如利用社工等,得到控制面板的账号密码,那真实ip就很轻易能获取到了。
5. Mx记录或邮件
很多站点都有发送邮件sendmail的功能,如Rss邮件订阅等。而且一般的邮件系统很多都是在内部,没有经过CDN的解析。可在邮件源码里面就会包含服务器的真实 IP。
例:寻找墨者平台的真实ip
我们通过邮箱的方式,找到他的真实ip。因为是墨者服务器请求我,所以我会记载他的ip地址
6. 国外请求
通过国外得一些冷门得DNS或IP去请求目标,很多时候国内得CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。 通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP查询网站:
Ping查询_专业精准的IP库服务商_IPIP
7.网络空间搜索引擎法
zoomeye、fofa、shodan
通过这些公开的安全搜索引擎爬取得历史快照,主要得一些特征总结如下:
特有的http头部(如server类型、版本、cookie等信息)、
特定keyword(如title、css、js、url等)、
特定的IP段搜索(如fofa支持C段搜索),
有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。
最后,找到真实ip后在C盘中的hosts文件中增加DNS域名