知识点一:什么是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的查询

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


这是一个有CDN的查询,同样的域名不同的IP。
那么我们如何快速的分辨一个网站有没有cdn呢???
可以使用站长之家的在线查询:多地ping-https://tool.chinaz.com/speedtest/https://www.taobao.com/


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

而这种就是没有上CDN的
CDN对我们的影响有哪些?
1.无法找到真实ip
2.没有真实ip就不能进行端口扫描、木马连接、C段扫描等等~
了解了以后就可以下一步了~
知识点二:如何通过创建CDN的视角,寻找真实ip?
想要了解这个,首先我们要看看CDN是如何创建的?
以阿里云为例:
可以看到CDN的添加,需要几个信息
1.加速的域名
2.加速的区域
3.加速资源
从这两个点我们可以收集到什么样的信息?
CDN加速的设置需要一个一个域名进行设置,那么有没有可能管理者会少设置一个子域名呢?
怎么理解?一个IP可以绑定多个域名,www.aaaa.com www.bbbb.com这两个域名。www.aaaa.com进行CDN。
www.bbbb.com没有设置CDN那么是不是通过查询b域名,从而得到a域名的IP地址~


(这里只是举个例子,如果要复现的话你们得自己找一个域名~)
这时候肯定有人问了。主播主播,我怎么知道a和b绑定的域名是同一个IP?
有的有的,有办法的
如果是Windows,那么可以去到该文件夹下

修改该文件
格式很简单:
ip + 域名即可
效果就是,当那你访问这个域名的时候,只会以这个IP进行访问呢
需要以管理员权限打开才能修改

然后将目录切换到文件夹下
cd C:\Windows\System32\drivers\etc
使用该命令打开文件
notepad C:\Windows\System32\drivers\etc\hosts

怎么证明呢?
可以ping一下~

没有修改前的结果

修改过后的结果
如果不能ping的话,也可以通过浏览器访问来证实是否修改了。记住要使用微软自带的浏览器否则无法生效
例如我这里改为了211,明显不太可能是该网站的ip地址,进行访问

那么网站将会无法加载
那么其实方法就是将同样的域名绑定一个IP进行访问,如果都能加载,说明两个域名绑定在同一个IP下
(若两个域名均解析到同一IP且能正常访问,可能说明它们绑定到同一IP,但需排除虚拟主机、反向代理等干扰因素。)
这就是方法的局限性了~
那么其他的方法也很简单
1.它的选择如果只是某个国家加速,那么你使用国外的服务器,通过全局挂代理,是不是就不会被CDN加速,是不是就能访问出它的真实IP~
2.它如果只是选择了某个资源加速,例如下载视频加速,下载图片加速,下载软件加速。那么你是不是可以通过它没有加速的资源获得它的真实IP~
知识点三:通过漏洞发现真实IP
例如一个SSRF的漏洞,你利用它主动的去访问你的服务器~


这里就会有真实的IP。
如何理解?这是一个主动和被动的关系。你主动去访问别人的服务器,那么别人的服务器做了CDN,你就得走别人的CDN从而捕获不到真实的IP。
但如果你的服务器被动的别人访问了,这样别人的IP就是真实的IP~
而只要有远程资源加载的网站,都可以使用这样的方式,让网站加载你服务器的IP地址从而看到别人的真实IP。
第二种漏洞就是配置文件泄露,例如phpinfo文件

这里就会显示IP地址,现在这个地址是内网地址。但如果服务器没有内网的话,那么显示的就是外网地址。
当然还有一些配置文件会专门的显示外网的IP地址,这也是寻找真实IP服务的一个地方。这就需要你们自己去找了,因为我懒!
知识点四:邮件系统绕过CDN
邮件系统绕过CDN
#某应用-CDN绕过-邮件系统-让他主动给你发:部署架设的邮件服务器如果向外部用户发送邮件的话,那么邮件头部的源码中会包含此邮件服务器的真实IP地址。常见的邮件触发点有:
1、RSS订阅
2、邮箱注册、激活处
3、邮箱找回密码处
4、产品更新的邮件推送
5、某业务执行后发送的邮件通知
6、员工邮箱、邮件管理平台等入口处的忘记密码-你给未知邮箱发:(需要自己的邮件服务器不能第三方)通过发送邮件给一个不存在的邮箱地址,因为该用户邮箱不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实IP通知。
这个案例是2023年的了~


然后查看这个邮件的原文


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


你可以看发送邮件的域名和网站的域名是否一致来判断。
方式二:你主动给邮件服务器发邮件。
条件:你需要一个自己的邮件服务器~
原理:如果邮件服务器没有找到你发送邮件的对象,会带着IP地址来告诉你,你发送的邮件没有送达。
为什么要用自己的邮件服务器呢?
因为如果你用QQ的邮件服务器,那么流程就是目标邮件服务器–> 错误信息给到QQ邮件服务器–>再传给你

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


这里就有IP,只要当我们有一台自己的邮件服务器就可以实现本姿势。
知识点五:通过空间引擎进行CDN绕过&使用工具进行全网扫描CDN绕过
在线查询网站:CDN查询

这里输入一个域名就可以查到它的真实ip
百分百成功吗?当然不可能啊,哈哈,就是一个可以印证的网站~
FOFA


FOFA的是针对国外的CDN,对于国内的CDN效果其实并不好,而且一次三块人民币老贵了~
补充一个知识,查询CDN的厂商,也就是提供CDN的服务是谁。当然也可能查询不到~

还有一些没有提到的~
#参考知识:
超级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
这里我们用社区版,什么为什么不用付费,没钱宝宝~
但我在复现的时候,发现这个产品已经下架了,需要自己去网络上找遗留的资源~

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

可以看到这里有大量阿里云的IP。其实不止是有这些IP,还有其他的云IP,以及不是云的IP
接下来我们进行一个设置


有人会问,什么是特征?我不知道特征是什么呀?
这就提示词就是特征,但不建议以这个提示词为特征,因为这样的特征太多了,我们的结果也会出来很多
但这里是以我们自己的服务器为演示对象,我们确定了IP段,扫描的IP数量少所以可以这么做。


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

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


再通过手工将这些结果进行排查。是不是就能访问到我们想要的域名了~这样就是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