<
CDN的查询与绕过
>
上一篇

日志分析
下一篇

app和小程序安全测试
CDN的查询与绕过

CDN概念

Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

CDN功能

归纳起来,CDN具有以下主要功能:

(1)节省骨干网带宽,减少带宽需求量;

(2)提供服务器端加速,解决由于用户访问量大造成的服务器过载问题;

(3)服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无须占用主干的出口带宽,并提高用户访问因特网页面的相应时间的需求;

(4)能克服网站分布不均的问题,并且能降低网站自身建设和维护成本;

(5)降低“通信风暴”的影响,提高网络访问的稳定性。

现在各大厂商又推出各种安全CDN加速,号称SCDN,具体就是做加速的同时,防护DDoS,CC,Web应用攻击,恶意刷流量,恶意爬虫等危害网站的行为。在CDN边缘节点中注入安全防护。

相当于平时做的网站防护,加到了分发到加速节点上。如果源站未做防护,那么不就省去了bypass的步骤。

CDN技术

源站:我们自己的那个网站就被称为是源站。

反向代理:CDN节点向源站请求数据的方式就叫反向代理,也就是上文所说的转发。

回源:CDN节点向源站请求数据的行为就叫做回源。

简单说明一下流程
1.管理员将域名的DNS指向CDN厂商的DNS上(当然,根据选择不同也有可能使用CName方式,但都不影响数据流的流向)。

2.用户需要登录站点,请求DNS以便获得服务器IP(此处最终请求的DNS服务器为CDN厂商的DNS)

3.CDN厂商收到DNS查询请求及各种信息,通过各种算法选择一个离用户最近的节点,将该节点的IP 1.1.1.1作为服务器IP返回给用户(此处CDN厂商告诉用户一个假的服务器IP)

4.用户收到DNS响应,将HTTP请求(该处为登录请求,请求报文包含用户密码)发给1.1.1.1

5.CDN节点接收到请求包判断请求报文是否是动态页面,如果是静态则查看webcache,存在缓存直接返回缓存页面。如果是动态页面请求或者没有缓存的静态页面,节点则直接请求真实源,以便获取最新的内容。(注:此处对于动态页面的请求一般每次都会做回源操作)

CDN检测

查询是否使用了CDN,使用站长之家多地ping是一个很简单也很方便的方法,但我们还是要了解一下其原理

原理:多地ping还是利用dns解析,不同地点针对同一域名解析到的是不同IP,实际差异是在使用了不同的DNS服务器。向全球不同的DNS服务器发送查询请求,也是可以达到相同的效果的

whichcdn 一个CDN识别、检测的工具
研究了下源码,其判断CDN的方式主要通过以下几个方面
1、使用nslookup命令,查询dns解析记录
2、使用IP直接请求服务器,看服务器响应
3、查看http响应包,看是否带有cdn指纹
‘Server’: True, ‘X-CDN’: True, ‘x-cache’: True, ‘X-CDN-Forward’: True, ‘Fastly-Debug-Digest’: False 4、查询子域解析,看是否使用cdn
5、使用whois命令查询

一些常见的厂商 ‘Cloudflare’: ‘Cloudflare - https://www.cloudflare.com’,
‘Incapsula’: ‘Incapsula - https://www.incapsula.com/’,
‘Cloudfront’: ‘Cloudfront - https://aws.amazon.com/cloudfront/’,
‘Akamai’: ‘Akamai - https://akamai.com’,
‘Airee’: ‘Airee - https://airee.international’,
‘CacheFly’: ‘CacheFly - https://www.cachefly.com/’,
‘EdgeCast’: ‘EdgeCast - https://verizondigitalmedia.com’,
‘MaxCDN’: ‘MaxCDN - https://www.maxcdn.com/’,
‘Beluga’: ‘BelugaCDN - https://belugacdn.com’,
‘Limelight’: ‘Limelight - https://www.limelight.com’,
‘Fastly’: ‘Fastly - https://www.fastly.com/’,
‘Myracloud’: ‘Myra - https://myracloud.com’,
‘msecnd.ne’: ‘Microsoft Azure - https://azure.microsoft.com/en-us/services/cdn/’,
‘Clever-cloud’: ‘Clever Cloud - https://www.clever-cloud.com/’

在xcdn脚本中,认为a记录超过一个,就存在CDN。

CDN绕过

xcdn 一个绕过CDN找源IP的工具

研究了下源码,其主要通过以下方式来找源IP
1、配置文件泄露,找phpinfo文件
2、从C段找源IP
3、从mx记录中得到ip列表,尝试从mx记录中的c段中找真实ip
4、从CND接入商的接口查询真实IP

除了脚本中查找的方式,还可以使用以下方法
1、dns历史解析记录
2、利用ssl证书
3、利用网页中的内容和接口地址
4、利用注册认证邮件或其他服务器回复邮件找源IP
5、对CDN节点进行攻击
6、APP和小程序包中的接口
7、全网扫描开放端口80和443,然后再去跑源IP

Top
Foot