如何判断一个网站是否存在一个CDN?

编程语言及工具

105人已加入

描述

0x01 前言

在渗透测试的信息搜集阶段,在搜集到目标主站之后常常需要获取的对方网站的真实IP去进一步的信息搜集,但是在目前主流的网站大多都部署了CDN,将资源部署分发到边缘服务器,实现均衡负载,降低网络堵塞,让用户能够更快地访问自己的网站。

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

CDN给用户带来便捷的同时也给安全人员带来了更大的挑战,如果网站存在CDN,那么你拿到的IP也是一个分发的虚拟节点,在这个节点所搜集的信息基本是无用功。所以,我们必须绕过CDN去找到网站的真实IP。

0x02 判断CDN的存在

那么我们要如何判断一个网站是否存在一个CDN呢?

•1、CMD命令

通过nslookup命令进行检测,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。

CDN

•2、利用在线网站

利用在线网站进行全国多地区的ping服务器操作,然后对比每个地区ping出的ip结果,查看这些ip是否一致,如果都是一样的,极有可能不存在CDN。如果ip大多不太一样或者规律性不强,可以尝试查询这些ip的归属地,判断是否存在CDN。以http:/ping.chinaz.com为例子,去ping一下百度搜索的ip,这种就是很大几率存在CDN的。

CDN

 

 

•使用各种在线工具帮助检测目标网站是否使用了CDN

0x02绕过CDN寻找真实IP

•1、同国家IP地址访问查询

假设网站是美国的,你用本地ip去访问的时候返回的是该美国CDN返回的IP,但是你使用了美国本土的IP,他可能可以返回真实IP。

•2、子域名查询 由于目标服务可能在主站上做好了相应的CDN,但是由于种种原因例如部署费用过高,或者对二级域名不上心等,所以导致二级域名没有部署到CDN,这时我们可以从这个方面入手进行查询。利用子域名搜集工具等搜集到足够的子域名后,便可以对通过子域名进行真实IP的搜集

•3、用phpinfo.php或者php探针去查看泄露的信息

在开发网站的时候,开发者可能会将一时疏忽忘记将可能泄露信息的 php探针等处理掉,让我们有机可乘 通过谷歌语法去搜集

inurl:phpinfo.php inurl:xxxxxx

•4、查询域名的解析记录 通过查看查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的相关记录,

•5、利用fofa等搜索引擎

在网页中将title标签提取出来,然后fofa搜索框

title = "xxxxxxx"

查到到的ip可以拿到和微步的DNS历史查询来对比 常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip

CDN

•6、利用邮箱反查

在很多网站都有忘记密码的功能,国内网站大多数都可以通过注册账号,然后通过忘记密码来获得一封来自网站邮件服务器的一封邮件,而国外网站大多数都存在RSS订阅服务,通过绑定邮箱订阅同样也可以获得邮件,如果不想暴露自己的邮箱,可以利用临时邮箱来进行搜集 申请临时邮箱,利用临时邮箱去注册账号

CDN

临时邮箱中会得到一封带有验证码的邮件

CDN

此时查看一下原文可得来自邮件服务器的IP: CDN

•7、扫全网 这种方法其实非常费时费力,如果实在没有突破口可以进行信息搜集,可以借助扫描脚本来搜集

总结

在实际的测试中遇到的主站都基本上存在CDN,所以想要找到站点服务器的真实IP变得尤为重要。

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分