1.问题来源概述
我们在日常的渗透工作中、或接单中通常需要通过客户提供的域名信息解析其公网地址,
这方面的工具很多(比如通过系统自带的nslookup命令或站长工具等)我就不再浪费篇章了。但是
由于目前网站加速技术的普遍应用(比如CDN加速),导致我们通过常规技术手段获得的公网地址
通常为提供加速服务的供应商的公网地址,而不是最终的用户地址。那么如何进行判定呢?首先我
们来了解一下CDN加速原理。
2.加速原理分析
本章节主要阐述两方面的内容:1.正常情况下网站访问原理 2.采用加速后网站访问原理
2.1 网站正常访问原理分析
1.用户通过浏览器访问网址比如:www.gcexe.com
2.系统向DNS服务器发起查询请求(通过DNS服务器间的递归查询,最终请求到域名供应商的DNS服务器)
3.DNS服务器返回www.gcexe.com的公网地址比如221.224.24.214
4.系统向该221.224.24.214发送HTTP页面请求
5.网站服务器按需返回页面给用户系统
6.网站内容在用户浏览器呈现,至此流程完成
针对正常的处理方式,用户需要在DNS服务器上设置个A(主机)记录,以便DNS服务器能将域名解析为IP地址:以万网的域名解析系统为例:
2.2 网站加速访问原理分析
以下因素导致网站访问可能出现延迟、阻塞、发卡现象
网站服务器本身处理性能低下,如CPU、内存配置过低而无法满足响应需求
网站接入速率过低,比如网站服务器以2M速率接入运营商(ISP)网络
同ISP网络内用户访问通过太多的交换、路由、安全设备,比如北京访问广州服务器
跨运营商(ISP)访问网络,比如用户在网通而服务器在电信—运营商骨干瓶颈问题
国际主干通信链路瓶颈问题,比如国内用户访问国外网站
而CDN(俗称网站加速)这是为解决这些问题应用而生的技术。它其实是局域网的网站缓存技术
(比如部署网站缓存服务器将用户经常访问的页面保存在该设备上以加快访问速度)在广域网的
扩展和延伸,其实现技术原理我个人分析如下:
1.用户通过浏览器输入网址(此例以www.xxx.com网站为例)
2.用户系统向DNS服务器进行请求(通过DNS服务器间的递归查询,最后到域名供应商的DNS服务器)
3.域名服务商的DNS服务器通过查询记录发现只有CNAME记录可以匹配
4. 域名服务商的DNS服务器通过CNAME记录内容,转发给CDN服务商的DNS服务器
5. CDN服务商的特定系统通过DNS服务器间的交互报文确定用户源地址(未经过证实)
6. CDN服务商特定系统将离用户最近的缓存服务器地址告知自己DNS服务器(未经过证实)
7. CDN服务商的DNS服务器将域名的IP地址信息告知域名服务商DNS服务器
8. 域名服务商DNS服务器将该域名的IP地址信息告知最终用户
9.用户系统根据DNS回复报文中的IP地址信息发送HTTP请求给WEB缓存服务器
10.WEB缓存服务器收到请求后发送特定的页面信息给最终用户,至此流程结束
3.实践验证理论
为了证明自己的分析,实例进行验证。
目标网址:www.gcexe.com
公网地址:221.224.24.214
3.1 CDN加速测试申请
3.2 更改域名解析内容
3.3 数据验证理论分析
由于全球的DNS服务器信息同步需要一段时间,因此建议30分钟后再进行测试。
那么通过何种方式验证刚才自己的分析????????????????
如果分析正确的话,那么既然CDN加速在全国都有缓存服务器,我如果叫全国各地的朋友帮忙解析下
www.gcexe.com网站的IP地址不就可以得出结论了?(分析没错的话,应该各地反馈的地址均不一样)
通过以上验证,基本确定自己的判断结果应该八九不离十,至少偏差不会太大
4.问题分析解决
4.1 问题研究定位
了解了CDN加速原理,我们回归原来提出问题,如何判定域名解析出来的公网地址是用户的的最终地址还还是CDN加速地址??
如果单单通过IE浏览器查看,我们是无法获取该信息的,因为页面反馈的信息是一模一样的,(除非你对HTTP交互报文进行分析,对于CDN加速的网站其交互报文中也有特征字段,本KB不进行涉及)
想想我们在加速验证的时候首先进行了什么操作???
对,首先我们对我们对域名解析进行了调整,那么能否通过对DNS报文分析来进行判读呢?
我们来看一下,在CMD模式下使用NSLOOKUP命令输出的结果在加速前和加速后有无区别:
4.2 分析结论输出
通过分析加速前和加速后的DNS报文内容分析,我们可以得出:
只要CDN加速实现方式是:1.不变更终端用户的输入网址(域名) 2.域名服务器必须配置CNAME字段。就能通过
其DNS反馈报文中是否有CNAME字段确定其是否为加速后地址,最终确定该公网地址是否为最终WEB服务器的公网地址。
但是这个结果如果反推是否成立??—————-即DNS回复报文中有CNAME字段则必定是进行了CDN加速,这个留给大家考虑。
5.经验知识总结
总结一:
回想我们刚才的实验,当我们在域名服务器上配置CNAME解析时,其实已经把域名解析成最终IP的主动权拱手让人了。
在本例中是将解析权转让给了www-gcexe-com.powercdn.cn这个域名所处的DNS服务器,而www.gcexe.com这个域名只是作为一个别名存在
总结二:
本次通过DNS分析报文确定问题,其实是利用TCP/IP协议详解中第十四章 DNS域名系统中的基本知识点:
总结三:
根据CDN加速的实现原理:我相信此种技术应有以下几种特性:
当WEB服务器故障或无响应的时候,用户依然可以访问网站。(因为其访问的是WEB缓存服务器。)
如果网站管理员更新页面内容,最终应用在短时间内无法察觉。(因为WEB缓存服务器和实体服务器页面同步肯定需要一段时间)
转自:http://www.2cto.com/Article/201407/320842.html
转载请注明:jinglingshu的博客 » 如何定位获取IP是否为最终网站IP地址