关于CDN以及如何绕过CDN寻找真实ip

目录

一. CDN产生的背景

二. CDN的诞生

三. CDN原理

四. CDN好处

五. 检测是否存在CDN

六. 绕过CDN查找真实ip

实战分享—寻找真实ip绕过WAF防御机制


学习一项新的知识,要从它产生的背景开始了解

一. CDN产生的背景

如今这个移动互联网时代,越来越多的人使用手机观看视频,丰富自己的娱乐生活。可是,大家在追剧的时候,有没有想过一个问题——为什么有时候明明自己手机的网速很快,但观看视频时,仍然卡顿?回答这个问题之前,我们先来做一道算术题。

以之前很火的“延禧攻略”为例,当时曾经在某视频APP实现了1千万用户同时在线观看。如果大家观看的是1080p清晰度的视频(理论上需要4Mbps带宽),那么,累计需要的流量带宽是10,000,000×4Mbps=40,000,000Mbps=40Tbps。对于优酷、爱奇艺这样的互联网视频内容提供商来说,这无疑是非常巨大的流量压力。我们普通计算机的网卡,是1Gbps的带宽。如果优酷有一台超级服务器,那么,这台超级服务器就需要4万块网卡,而且必须百分之百跑满速度,才能够实现这1千万用户的流畅观看。对于一些实力不够的服务商,或者突发流量陡增的情况,就会造成拥塞,从而导致卡顿和延时。

有这么一个说法:当用户打开一个页面,等待超过4秒,他就会关闭这个页面。也就是说,这个用户就会流失。用户的流失,就意味着金钱的流失。没有任何一家互联网服务提供商希望这样的情况发生。所以,它们必须想方设法让自己的内容尽快呈现,缩短用户的等待时间,提升用户的体验。

CDN,就是一项非常有效的缩短时延的技术。

二. CDN的诞生

上世纪80年代,互联网技术刚刚走入民用领域。人们主要通过拨号来访问网络,带宽很低,用户也很少,所以,没有对骨干网以及服务器带来压力。随着互联网的爆炸式发展,用户越来越多,加上宽带接入网的出现,内容源服务器和骨干网络的压力越来越大,无法及时响应用户的访问需求。

1995年,麻省理工学院教授、互联网的发明者之一,Tim Berners-Lee博士发现,网络拥塞越来越严重,将会成为互联网发展的最大障碍。于是,他提出一个学术难题,希望有人能发明一种全新的、从根本上解决问题的方法,来实现互联网内容的无拥塞分发。当时Tim Berners-Lee博士的隔壁,是Tom Leighton教授的办公室。他是一位麻省理工学院应用数学教授。他被Berners-Lee的挑战激起了兴趣,于是他请研究生Danny C. Lewin和其他几位顶级研究人员一起破解这个技术难题。

最终,他们开发了利用数学运算法则来处理内容的动态路由算法技术,有效地解决了这个难题。这个技术,就是CDN。他们还为此专门成立了公司,发挥其商业价值。这个公司,就是后来鼎鼎大名的CDN服务鼻祖——Akamai公司

三. CDN原理

CDN这个技术其实说起来并不复杂,最初的核心理念,就是将内容缓存在终端用户附近。内容源不是远么?那么,我们就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里,不就OK了?

因为这项技术是把内容进行了分发,所以,它的名字就叫做CDN——Content Delivery Network,内容分发网络。具体来说,CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。(有点像电商的本地仓吧?)

大家可能觉得,这个不就是“镜像服务器”嘛?其实不一样。镜像服务器是源内容服务器的完整复制。而CDN,是部分内容的缓存,智能程度更高。

确切地说,CDN=更智能的镜像+缓存+流量导流

而且还需要注意的是,CDN并不是只能缓存视频内容,它还可以对网站的静态资源(例如各类型图片、html、css、js等)进行分发,对移动应用APP的静态内容(例如安装包apk文件、APP内的图片视频等)进行分发。

我们来举个例子,看看CDN的具体工作流程。如果某个用户想要访问优酷的视频点播内容,那么:

①、当用户点击APP上的内容,APP会根据URL地址去本地DNS(域名解析系统)寻求IP地址解析。

②、本地DNS系统会将域名的解析权交给CDN专用DNS服务器

③、CDN专用DNS服务器,将CDN的全局负载均衡设备IP地址返回用户。

④、用户向CDN的负载均衡设备发起内容URL访问请求。

⑤、CDN负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的缓存服务器

⑥、负载均衡设备告诉用户这台缓存服务器的IP地址,让用户向所选择的缓存服务器发起请求。

⑦、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。

⑧、如果这台缓存服务器上并没有用户想要的内容,那么这台缓存服务器就要网站的源服务器请求内容。

⑨、源服务器返回内容给缓存服务器,缓存服务器发给用户,并根据用户自定义的缓存策略,判断要不要把内容缓存到缓存服务器上。

四. CDN好处

采用CDN技术,最大的好处,就是加速了网站的访问——用户与内容之间的物理距离缩短,用户的等待时间也得以缩短。而且,分发至不同线路的缓存服务器,也让跨运营商之间的访问得以加速。例如中国移动手机用户访问中国电信网络的内容源,可以通过在中国移动假设CDN服务器,进行加速。效果是非常明显的。

此外,CDN还有安全方面的好处。内容进行分发后,源服务器的IP被隐藏,受到攻击的概率会大幅下降。而且,当某个服务器故障时,系统会调用临近的健康服务器,进行服务,避免对用户造成影响。

正因为CDN的好处很多,所以,目前所有主流的互联网服务提供商,都采用了CDN技术。所有的云服务提供商,也都提供了CDN服务

cdn的好处很多,但是对于渗透测试人员来说,是成功路上的绊脚石。它将服务器的真实ip隐藏了,访问的数据先到达cdn,相当于我们是直接与cdn进行了交互,比如我们此时进行域名的端口扫描,那扫描的就是cdn的端口!而且现在CDN也能充当云waf的功能,有什么攻击动作云waf先把你干掉了。所以,绕过cdn查找真实ip就挺重要的。

五. 检测是否存在CDN

要看一个网站是否开启CDN功能,方法很简单。只要在不同的地区ping网址就可以:例如在旺角ping得到的IP地址是61.10.0.0,但在拉斯维加斯ping得到的IP确是76.164.192.0。像这样在不同地区ping同一个网址,我们得到不同的IP地址,那么这种情况,我们就可以判断该网站开了CDN加速。讲得在通俗易懂就是“就近原则”了。所以我们可以使用在线ping检测,原理也就是通过假设在不同地区的服务器对目标进行发起ping请求,如何ping出来的ip大于或等于两个,则可判断使用了cdn。

站长直接ping检测

六. 绕过CDN查找真实ip

通过ping检测发现使用了CDN后,就需要去查找真实ip了。要知道有很多客户使用CDN的一个很大的目的就是为了隐藏自己的ip,所以想查找真实ip也不是那么容易。网上有很多方法,但基本都是千篇一律,放在过去估计行,但是现在压根就没用,都是互相抄来抄去,估计自己都没验证过。如果网上有人给出了好的找到真实IP的方法,那防止攻击不就起不到作用了。这里列举两个我觉得可能有效的方法:

1. 利用fafa

我们首先F12查看目标网站的源代码,找到站点的title。观察网站title是否是标志性的词,就是看起来像不像会重名的那种。 如果title看起来就很特殊,则可以利用fofa来搜索网站的title,语法为title="title" 进行查找。然后搜索出来的ip我们打开进去看站点是否和我们用域名打开的网站一样,如果是则很可能是真实ip。如果fofa搜索出来的ip进入查看后发现和我们目标域名的站点不一样,说明不是真实ip,可能是cdn或者虚拟主机服务器。

2. 从邮件中获取真实ip

让网站给你发邮件,打开邮件详情,然后导出为eml格式的文件,寻找 "Received" 关键词,里面存在真实ip地址

 案例——> https://xz.aliyun.com/t/1761

参考文章:到底什么是CDN? - 知乎小枣君

实战分享—寻找真实ip绕过WAF防御机制

——> 记一次waf绕过实战_北遇-CSDN博客

### 如何绕过 CDN 获取网站真实 IP 地址的技术手段 #### 通过查询历史 DNS 记录 一种有效的方式是查询目标域名的历史 DNS 解析记录。这可以通过专门提供此类服务的第三方平台完成,这些平台会存储大量的历史数据,能够揭示曾经解析到该域名上的所有 IP 地址[^1]。 #### 子域枚举与扫描 利用自动化工具来探测并尝试访问可能存在的子域名,某些情况下,次级页面或特定功能模块可能会直接暴露服务器的真实地址而不是经过缓存处理后的版本。 #### 使用网络空间搜索引擎 借助如 Censys 或 Shodan 这样的网络空间搜索引擎可以搜索公开可获取的信息资源,它们能帮助定位那些未被良好保护的服务端口及其对应的物理位置信息,进而推测出实际部署情况下的 IP 地址。 #### SSL/TLS 证书分析 当 HTTPS 协议用于安全通信时,SSL/TLS 握手过程中交换的数据包内包含了有关站点身份验证的重要线索——即由权威机构签发给具体主机名(通常是源站而非边缘节点)的有效凭证文件;通过对这类证书内容的研究,有时能找到指向原始服务器的确切路径。 #### HTTP 请求头部检测 部分 Web 应用程序会在响应报文中携带额外字段指示其内部架构细节,比如 `X-Forwarded-For`、`Via` 等特殊首部项就经常用来传递客户端请求链路上所经历过的各个代理层信息,在适当条件下也能间接反映出处置业务逻辑的核心组件所在之处。 ```bash curl -I https://example.com/ ``` 此命令可用于查看HTTP头信息。 #### 分析网页加载资源 许多在线服务平台为了优化性能表现或是出于其他考虑因素,会选择让静态素材不经加速通道而直连至生产环境中的某台机器上托管发布,因此只要仔细审查 HTML 文档里指定的各种外部链接就能发现潜在突破口。 #### 测试邮件发送机制 如果目标拥有自己的 SMTP 邮件传输协议实现,则向之提交一封测试信件后观察回执消息里的路由轨迹同样不失为一条可行思路,因为电子邮件系统的配置往往更加贴近底层设施层面而不易受到前端展示形式的影响[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ly4j

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值