如何绕过CDN寻找真实IP?

知识点一:什么是CDN?CDN对我们的影响?

#前置知识:

1.传统访问:用户访问域名->解析服务器IP>访问目标主机

2.普通CDN:用户访问域名->CDN节点->真实服务器IP->访问目标主机

3.带WAF的CDN:用户访问域名->CDN节点(WAF)->真实服务器IP->访问目标主机

国内服务商:阿里云、百度云、七牛云、又拍云、腾讯云、Ucloud、360、网宿科技、ChinaCache

国外服务商:CloudFlare、StackPath、Fastly、Akamai、CloudFront、Edgecast、CDNetworks、Google、Cloud、CDN

CDN的影响有哪些呢?

以我们平时查询一个网站的域名为例:https://www.zjou.edu.cn/

我们会去在线网站通过该域名进行ip的查询

1741589803_67ce8d2be7fb4f915abed.png!small?1741589754126

这是一个没有CDN的域名,它每次查出来的IP是一样的

1741589816_67ce8d38ec91d2df37717.png!small?1741589767085
1741589820_67ce8d3cb841f702da856.png!small?1741589771018

这是一个有CDN的查询,同样的域名不同的IP。

那么我们如何快速的分辨一个网站有没有cdn呢???

可以使用站长之家的在线查询:多地ping-https://tool.chinaz.com/speedtest/https://www.taobao.com/

1741589831_67ce8d47186e5ed6c8c3a.png!small?1741589781491
1741589840_67ce8d503a836bc25c0ae.png!small?1741589790954

可以看到这种每个地方都有不同的IP的这种就是上了CDN。

1741589847_67ce8d57a13b2c841857c.png!small?1741589798206

而这种就是没有上CDN的

CDN对我们的影响有哪些?

1.无法找到真实ip

2.没有真实ip就不能进行端口扫描、木马连接、C段扫描等等~

了解了以后就可以下一步了~

知识点二:如何通过创建CDN的视角,寻找真实ip?

想要了解这个,首先我们要看看CDN是如何创建的?

以阿里云为例:1741590143_67ce8e7fae24cea9d1719.png!small?1741590093973

可以看到CDN的添加,需要几个信息

1.加速的域名

2.加速的区域

3.加速资源

从这两个点我们可以收集到什么样的信息?

CDN加速的设置需要一个一个域名进行设置,那么有没有可能管理者会少设置一个子域名呢?

怎么理解?一个IP可以绑定多个域名,www.aaaa.com www.bbbb.com这两个域名。www.aaaa.com进行CDN。

www.bbbb.com没有设置CDN那么是不是通过查询b域名,从而得到a域名的IP地址~

1741590158_67ce8e8e6c1783f871128.png!small?1741590108848
1741590162_67ce8e927ba542e5f17ab.png!small?1741590112833

(这里只是举个例子,如果要复现的话你们得自己找一个域名~)

这时候肯定有人问了。主播主播,我怎么知道a和b绑定的域名是同一个IP?

有的有的,有办法的

如果是Windows,那么可以去到该文件夹下

1741590174_67ce8e9e6f6dc6d0aff12.png!small?1741590124770

修改该文件

格式很简单:

ip + 域名即可

效果就是,当那你访问这个域名的时候,只会以这个IP进行访问呢

需要以管理员权限打开才能修改

1741590198_67ce8eb661a6dd3c00e72.png!small?1741590148806

然后将目录切换到文件夹下

cd C:\Windows\System32\drivers\etc

使用该命令打开文件

notepad C:\Windows\System32\drivers\etc\hosts

1741590234_67ce8eda0efd878d69836.png!small?1741590184465

怎么证明呢?

可以ping一下~

1741590242_67ce8ee20a45b14f8c695.png!small?1741590192486

没有修改前的结果

1741590257_67ce8ef141abd9b2a70ec.png!small?1741590207916

修改过后的结果

如果不能ping的话,也可以通过浏览器访问来证实是否修改了。记住要使用微软自带的浏览器否则无法生效

例如我这里改为了211,明显不太可能是该网站的ip地址,进行访问

1741590271_67ce8eff2771b3edbb485.png!small?1741590221498

那么网站将会无法加载

那么其实方法就是将同样的域名绑定一个IP进行访问,如果都能加载,说明两个域名绑定在同一个IP下

(若两个域名均解析到同一IP且能正常访问,​可能说明它们绑定到同一IP,但需排除虚拟主机、反向代理等干扰因素。)

这就是方法的局限性了~

那么其他的方法也很简单

1.它的选择如果只是某个国家加速,那么你使用国外的服务器,通过全局挂代理,是不是就不会被CDN加速,是不是就能访问出它的真实IP~

2.它如果只是选择了某个资源加速,例如下载视频加速,下载图片加速,下载软件加速。那么你是不是可以通过它没有加速的资源获得它的真实IP~

知识点三:通过漏洞发现真实IP

例如一个SSRF的漏洞,你利用它主动的去访问你的服务器~

1741590326_67ce8f369c2146dd1ec6b.png!small?1741590277416
1741590330_67ce8f3a28d7af0e909ea.png!small?1741590280614

这里就会有真实的IP。

如何理解?这是一个主动和被动的关系。你主动去访问别人的服务器,那么别人的服务器做了CDN,你就得走别人的CDN从而捕获不到真实的IP。

但如果你的服务器被动的别人访问了,这样别人的IP就是真实的IP~

而只要有远程资源加载的网站,都可以使用这样的方式,让网站加载你服务器的IP地址从而看到别人的真实IP。

第二种漏洞就是配置文件泄露,例如phpinfo文件

1741590345_67ce8f495b4ba733be62c.png!small?1741590297219

这里就会显示IP地址,现在这个地址是内网地址。但如果服务器没有内网的话,那么显示的就是外网地址。

当然还有一些配置文件会专门的显示外网的IP地址,这也是寻找真实IP服务的一个地方。这就需要你们自己去找了,因为我懒!

知识点四:邮件系统绕过CDN

邮件系统绕过CDN

#某应用-CDN绕过-邮件系统-让他主动给你发:部署架设的邮件服务器如果向外部用户发送邮件的话,那么邮件头部的源码中会包含此邮件服务器的真实IP地址。常见的邮件触发点有:

1、RSS订阅

2、邮箱注册、激活处

3、邮箱找回密码处

4、产品更新的邮件推送

5、某业务执行后发送的邮件通知

6、员工邮箱、邮件管理平台等入口处的忘记密码-你给未知邮箱发:(需要自己的邮件服务器不能第三方)通过发送邮件给一个不存在的邮箱地址,因为该用户邮箱不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实IP通知。

这个案例是2023年的了~

1741590392_67ce8f78d9a122ef009dd.png!small?1741590343735
1741590396_67ce8f7c975c57192b779.png!small?1741590347177

然后查看这个邮件的原文

1741590403_67ce8f8368ab28162035e.png!small?1741590354768
1741590407_67ce8f87cf000281c6fa1.png!small?1741590358375

使用这个方法有一个前提条件,那么就是邮箱服务器必须是网站方面自己搭建的,而不是用的第三方,例如QQ、网易发送。

否则你看的就是QQ、网易的发送。

这里以FOFA为例:

1741590414_67ce8f8ed88df49d01b24.png!small?1741590366458
1741590431_67ce8f9f31af2815789b1.png!small?1741590382056

你可以看发送邮件的域名和网站的域名是否一致来判断。

方式二:你主动给邮件服务器发邮件。

条件:你需要一个自己的邮件服务器~

原理:如果邮件服务器没有找到你发送邮件的对象,会带着IP地址来告诉你,你发送的邮件没有送达。

为什么要用自己的邮件服务器呢?

因为如果你用QQ的邮件服务器,那么流程就是目标邮件服务器–> 错误信息给到QQ邮件服务器–>再传给你

1741590519_67ce8ff7a09784d3181b0.png!small?1741590470538

当然也有可能是对方服务器做了一些策略,导致像这样的意外情况发生,即使发送给一个不存在的用户,也可以成功的投递~

抛开这种情况不谈,这才是正常的情况

1741590528_67ce90007318ca9eef8cc.png!small?1741590479340
1741590533_67ce9005d721f707ca755.png!small?1741590484220

这里就有IP,只要当我们有一台自己的邮件服务器就可以实现本姿势。

知识点五:通过空间引擎进行CDN绕过&使用工具进行全网扫描CDN绕过

在线查询网站:CDN查询

1741590611_67ce90533a91595f5c5f3.png!small?1741590561824

这里输入一个域名就可以查到它的真实ip

百分百成功吗?当然不可能啊,哈哈,就是一个可以印证的网站~

FOFA

1741590618_67ce905ac0569e9dcf827.png!small?1741590569263
1741590621_67ce905df3c233b1c8253.png!small?1741590572382

FOFA的是针对国外的CDN,对于国内的CDN效果其实并不好,而且一次三块人民币老贵了~

补充一个知识,查询CDN的厂商,也就是提供CDN的服务是谁。当然也可能查询不到~

1741590633_67ce906974c4cf1fb5a09.png!small?1741590584110

还有一些没有提到的~

#参考知识:

超级Ping:http://www.17ce.com/

超级Ping:https://ping.chinaz.com/

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

接口查询:https://fofa.info/extensions/sourceI

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

国外请求:https://boce.aliyun.com/detect/

IP社区库:https://www.cz88.net/geo-public

全网扫描:https://github.com/Tai7sy/fuckcdn

全网扫描:https://github.com/boy-hack/w8fuckcdn

全网扫描:https://github.com/Pluto-123/Bypass_cdn

全网扫描项目:https://cz88.net/iplab

这里我们用社区版,什么为什么不用付费,没钱宝宝~

但我在复现的时候,发现这个产品已经下架了,需要自己去网络上找遗留的资源~

1741590676_67ce909409433eb261150.png!small?1741590626224

原理很简单,通过大规模的记录ip,然后对这些IP进行匹配

1741590686_67ce909ea0ca930cbfb8a.png!small?1741590637105

可以看到这里有大量阿里云的IP。其实不止是有这些IP,还有其他的云IP,以及不是云的IP

接下来我们进行一个设置

1741590694_67ce90a6173bfb7f82d29.png!small?1741590644625
1741590697_67ce90a96b6c74dfb7767.png!small?1741590647746

有人会问,什么是特征?我不知道特征是什么呀?

这就提示词就是特征,但不建议以这个提示词为特征,因为这样的特征太多了,我们的结果也会出来很多

但这里是以我们自己的服务器为演示对象,我们确定了IP段,扫描的IP数量少所以可以这么做。

1741590706_67ce90b217dea5e50c6e7.png!small?1741590656704
1741590708_67ce90b4a05a764a220e2.png!small?1741590659251

在这个文件中设置好要扫描的IP段:

1741590715_67ce90bb97e09d192def8.png!small?1741590665827

工具原理:

先从IP段去扫描符合开放端口,再从IP去访问看看关键字,将符合结果进行保存!

1741590723_67ce90c30c8c71d13b707.png!small?1741590673507
1741590727_67ce90c750f7a3f011aa7.png!small?1741590678468

再通过手工将这些结果进行排查。是不是就能访问到我们想要的域名了~这样就是CDN绕过的一种方式~

大总结

绕过CDN是通过各种的思路,将这些思路组合起来,进行信息收集,才可能发掘这个网站的真实IP。比如你用各个工具,显示的真实IP的结果都不一样,那么你就要通过公司名称、公司的地点、以及公司的业务,去想想,哪个IP才有可能是真正的真实IP。

经过本次学习,其实可以总结的出来想要绕过CDN的条件有:

1.只对某些域名做了CDN,子域名没有做

2.只对某些资源做了CDN,没有全做

3.只对某个地区做了CDN,其他地区没做

4.服务器本身有漏洞,可以主动的访问攻击者服务器

5.网站有邮件服务器,通过邮件服务器发送

6.网站有邮件服务器,且自己有服务器,可以通过错误信息

7.利用工具进行全网扫描,枚举IP

最后祝大家天天开心,快快乐乐~

本文来源:https://www.freebuf.com/articles/web/424120.html

发表回复

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