loader image

CDN详解(配置&识别&绕过&修改hosts指向)

前言

我们知道数据传输的过程中是需要时间的,哪怕他的速度再快,也是需要时间,所以随着距离的增长,数据传递的延迟也就增加了。如果我们在中国搭建一个网站,在美国去访问,那么这个距离跨越了大半个地球,这种延迟对我们的体验都是不好的。所以今天讲的CDN就是为了解决与目标服务器间隔遥远导致的访问延迟过高的问题。虽然说CDN解决了我们因为距离远而导致的延迟高的问题,提升了用户的体验,但是对我们安全测试者就有了一定的阻碍。

CDN简介

在前言中我们提到,CDN是为了解决因为距离目标服务器太远而导致的访问慢,延迟高的问题,那么CDN到底是怎么解决访问缓慢的问题呢?

CDN(Content Delivery Network)内容分发网络。

从他的名字我们可以知道他主要是提供了分发的功能。CDN其实你可以理解为是一个节点服务器,原理也很简单,我们因为距离远所以导致访问慢,那么我们就就近找一个节点去访问,这样也就解决了传输距离远的问题,但是这个节点,只是提供了一个缓存分发的功能,不是真正意义上的服务器,只是他里面缓存的你要访问的目标的东西。

这是我们传统访问目标服务器,中间有很长的一个距离。

image-20240324175650725

当我们进行CDN加速之后。比如我们在广东想要访问北京的目标服务器,因为距离太远了我们的访问体验会很差,但这时候我们可以通过访问就近的节点,比如这个节点就在广东,那么相比于我们从广东去访问北京,肯定是在广东访问广东的节点体验要更好一些。

image-20240324175857482

CDN配置(以腾讯云为例)

在腾讯云中我们找到CDN(内容分发网络)

image-20240324181301569

点击添加域名

image-20240324181319937

加速区域分为三个,中国境内,中国境外,全球。

  • 中国境内:当中国境内访问目标服务器时提供加速服务
  • 中国境外:当境外访问目标服务器的时候提供加速服务
  • 全球:境内境外访问服务器时都加速

image-20240324181333921

加速域名的话我们根据自己要加速的域名来输入

  • 如果你希望加速所有的子域名那么你可以用.你的域名.xxx的形式来对所有的子域名进行加速,举个例子,当我们加速\.hibugs.net,那么www.hibugs.net还是blog.hibugs.net等等所有.hibugs.net的域名都会加速。但当我们输入www.hibugs.net时,那么该CDN只会加速www.hibugs.net这个域名,blog.hibugs.net是不会加速的

image-20240324181518963

接下来我们看看加速类型

image-20240324181812727

分为全站加速和部分加速。这个也是看你的需求去选择,如果你希望整个网站都加速那么就选择全站加速,如果你只希望对网页的图片进行加速,那就选择CDN网页小文件。其他的图片中介绍的都很清晰,就不一一赘述了。

image-20240324181826573

在源站地址中我们需要填写入我们的IP地址,这里的IP地址就是我们的服务器的真实IP。

image-20240324182012481

如何查看目标是否使用CDN加速

看到这里那肯定有小伙伴会有疑问,那么我们如何得知目标使用了CDN呢?

非常简单我们只需要借助超级ping即可。什么是超级ping呢,其实就是全国各地不同的地方对该域名进行ping操作,然后查看他的ip是在哪里。如果说全国各地ping这个域名他都是在一个地方,那说明该目标没有启用CDN,但如果随着地方的不同ping出来的地址不同,那就说明该目标开启了CDN。

我们使用站长工具提供的工具:https://ping.chinaz.com/

image-20240325022748304

我们以百度为例测试(当然这里不用想百度肯定是用了CDN的)

image-20240325022923962

我们可以看到随着ping的地方不同,ping出来的地址也是不同的,比如我们第一条在湖北ping发现IP是广东的,第二条我们在黑龙江ping,发现IP是河北的。所以由此我们可以得出该目标是启用了CDN加速的。

接下来我们再看一个没有加速的例子

image-20240325023117390

我们可以看到满屏的中国香港,不管我们在什么的方ping,他返回的IP归属地都是香港,那说明该目标就没有启用CDN服务。

CDN绕过

从上面的CDN配置中我们可以总结出几个CDN配置的重要点:

  1. 加速域名
  2. 加速类型
  3. 加速区域
  4. 服务器真实IP

从上面几个点就引出了我们绕过CDN的几种思路。

子域名寻找目标真实IP

上面我们讲过如果我们在CDN配置的时候设置的是www的域名,那么对于我们别的域名来说是没有加速的。我们设置www.hibugs.net加速,blog.hibugs.net是没有加速到的,所以我们只需要ping blog.hibugs.net这个子域名就可以得知目标的真实IP。因为大概率子域名也是与加速的域名指向同一个目标的。

还有一种情况就是,你在配置DNS映射的时候配置了*.hibugs.net指向一个IP地址,那么他的意思就是所有的域名都指向这一个IP地址,但是你在CDN中配置的是www.hibugs.net,那么就只加速了www这个域名,我们去ping别的域名,就可以ping出来真实IP。比如我们去ping blog.hibugs.net就能够ping出真实IP。

这里还要提一下。设置了www.hibugs.net的CDN加速,你访问hibugs.net时,是不会加速的。

历史DNS记录

有的目标并不是一开始就是用的CDN,可能你之前访问的时候目标还是使用那台主服务器给你提供服务,也就是真实IP,而后来才开启的CDN。那么我们就可以通过历史DNS记录来查看域名对应的真实IP

查询的网站有以下几种:

  1. https://dnsdb.io
  2. https://x.threatbook.cn
  3. https://www.17ce.com
  4. ...

这里就不一一列举了。

从CDN的本身入手(社工)

什么叫从CDN的本身入手,通过上面的配置我们知道想要使用CDN一般来说都是通过这些服务器厂商去提供的,并且我们在配置CDN的时候,需要输入真实IP。那么也就是说我们如果拿下目标使用CDN的服务厂商的账号密码,登录他的账号就可以查看到他的真实IP了。具体如何去获取这就是属于社工方面的知识了,这里不进行详细的阐述。

国外请求

拿国内的目标举例子,一般来说加速的对象可能只仅仅针对国内。对于国外的用户访问时,仍然使用的是目标服务器提供服务,那么我们就可以通过国外请求的方式获取目标服务器的真实IP。

国外请求网址:https://tools.ipip.net/cdn.php

image-20240325172113371

右边的框输入域名,左边选择节点,我们选择国外的节点就可以让国外访问目标

虽然说我们使用超级ping的时候会有一些国外的节点,但是这些节点距离我们会比较近,类似于韩国、日本,这种距离近的极有可能也是可以被加速到的。我们使用上面这个网站,我们可以选择一些非洲啊这些比较偏远的地方的国家,这些地方互联网都不是很发达,所以一般不会有CDN加速,因为那边几乎没有什么人会访问你。

而且有些厂商的CDN地域范围设置,可能会有包含让你选择几个国家,美国、日本...等国家。他可以仅仅之加速国内和国外的几个国家,并不是说全球加速。

网络空间引擎搜索

常见的引擎有zoomeye、fofa、shodan。

我们可以通过这些安全搜索引擎的一些历史快照:

  1. 特有的http头部
    • Server类型
    • 版本
    • cookie
  2. 特定的keyword
    • title
    • css
    • js
  3. 特定的IP段搜索
    • fofa支持的C段搜索

这个思路主要是因为配置CDN加速的时候让我们选择的加速类型中,目标可能不会开启全站加速,仅仅只会加速图片或者是大文件下载或者其他。我们就可以查找其他未加速资源在网上的历史痕迹。

简单总结

对于上面的几种绕过思路先做一个简单的总结,下面还会有其他的绕过思路。

按照上面的说法吗,我们主要针对的是CDN配置中加速域名、加速类型还有加速区域进行的绕过。那么我们假设一种情况,如果我们把加速域名变成*.hibugs.net加速所有的域名,加速类型选择全站加速,加速区域选择全球。那么这样我们以上的思路就不生效了。当然这也算是一种极端可能,因为CDN加速服务是需要钱的,考虑到钱的问题,设置成这样固然是比较安全并且体验好的,但是钱包是很受罪的,所以以上的这些思路并不是说适用面不广。

遗留文件

有些网站搭建好之后可能会遗留下来一些文件,比如php可能会遗留下来配置文件。

image-20240325154410640

我们拉到下面找到PHP Variable,在限免的表格中有$_SERVER['SERVER_ADDR']里面记录了本机的真实IP。

image-20240325154537951

但是如果该目标上有多张网卡那这个IP就可能不是该目标的真实IP了。

通过漏洞

我们可以借助SSRF这个漏洞去探针目标的真实IP,我们知道CDN是针对于我们去访问目标的时候,就近选择节点给我们提供服务,但是当目标去访问我们的时候并没有什么就近访问,而是用他的目标服务器对我们进行访问,也就是访问我们的这个IP就是所谓的真实IP。

当我们去访问目标的时候,我们主动去连接他时,我们会就近选择CDN节点,由该节点为我们提供服务

image-20240325163946469

所以我们换一种思路,让目标服务器来主动连接我们,来请求我们,他主动来请求我们的话,就不会涉及到就近选择节点了,而是用他的真实IP的这台目标服务器来请求我们,所以我们就可以获得他的真实IP了

image-20240325164134273

而SSRF就是一个基于让服务端发起请求的一个安全漏洞。我们只需要在本地启用脚本监听一个端口,然后利用SSRF让目标服务器对我们监听的这个端口发起请求,我们就可以得知该目标服务器的真实IP了。

所以大体的思路就是让目标来找你,这样你就能知道目标在哪里(真实IP)这里只是以SSRF为例子,并不是说只局限于该漏洞,只要有类似的漏洞即可(可以让服务端请求资源)

通过邮件

这个其实跟上面的通过漏洞有异曲同工之妙,简单的原理大体就是我们让他来主动给我们发送邮件。因为很多公司或者是网站他会设有邮件服务,邮件服务一般来说就是内部员工去使用,所以基本上都没有进行CDN加速。所以我们只需要让目标给我们发一封邮件,再查看邮件的信息就可以知道目标的真实IP。

如何让目标主动发送邮件

一般来说我们去一些网站的时候会发现网站有注册登录的功能,我们注册的时候网站会给我们发送邮件,里面有我们注册需要的验证码,或者是我们忘记密码时网站也会发送一封邮件给我们。

实操(墨者学院)

我们进入墨者学院的找回密码界面,输入邮箱与验证码,点击确认

image-20240325231859551

当我们看到这个界面的时候就可以登录邮箱查看了

image-20240325232433342

我们点击打开邮件

image-20240325232447503

点击更多,点击查看信头

image-20240325232659815

我们在其中找到Received,这一行就是真实IP

image-20240325232737467

工具网站推荐

接口查询:https://get-site-ip.com

工具:fuckCDN

CDN验证

一般我们可以通过网站的备案去做一个辅助的验证,因为一般来说公司或者学校在哪里他的备案就会在哪里备案,知道在哪里备案之后,我们通过上述的方法找到真实IP之后,我们看真实IP归属地是不是与备案信息相一致,即可验证。

当然这些验证也只是说有概率,并不能百分之百确认。

CDN绑定

当我们拿到真实IP之后,我们想要继续后续的安全测试,我们肯定希望我们访问的是目标主机的真实IP,所以我们就需要修改HOSTS文件中的指向,让我们在访问该域名的时候是访问真实IP。

hosts文件所在的位置:C:\Windows\System32\drivers\etc\hosts

比如说我们拿到www.hibugs.net的真实IP是,192.168.1.1,我们在该文件中写入192.168.1.1 www.hibugs.net保存之后,我们在后续对www.hibugs.net的访问就是会指向192.168.1.1。如果我们没有写上192.168.1.1 www.hibugs.net,那就是通过互联网的DNS分配给我们的IP去访问。

image-20240325235933715

当我们修改了hosts文件之后,我们后续的访问或是安全测试就全部是指向192.168.1.1这个所谓的真实IP。

6人评论了“CDN详解(配置&识别&绕过&修改hosts指向)”

  1. Its like you read my thoughts! You seem to know a lot approximately
    this, such as you wrote the guide in it or something. I believe that you just could do with a few % to power the message house a little
    bit, however instead of that, this is fantastic blog.
    An excellent read. I’ll certainly be back.

    my website :: vpn coupon 2024

  2. It’s the best time to make some plans for the future and it’s time to be happy.
    I’ve read this post and if I could I want to suggest you
    few interesting things or advice. Perhaps
    you could write next articles referring to this article.
    I desire to read even more things about it!

    my blog post; vpn special code

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top