XDSec—07CDN绕过
文章目录
一、CDN是什么?
1.1、简介
- Content Delivery Network,即内容分发网络,是构建在现有网络基础上的智能虚拟网络
1.2、作用
- 依靠部署在各地的边缘服务器,通过中心服务器的调度,使得用户就近获取所需要的内容,以降低主站的网络拥塞,提高用户访问资源的速度
1.3、原理
- 如下图,采用缓存节点服务器,并且分布到访问量较大的一些地区,在用户访问时,利用全局负载技术将用户的访问指向最近的工作正常的缓存节点服务器上,由缓存节点服务器直接响应用户的请求
概括来说,CDN会隐藏主站的真实IP地址,导致你的攻击目标是离你最近的CDN节点,而不是真实的主站。
二、CDN检测与绕过
2.1、如何检测CDN
①、超级ping
-
多节点ping请求,并且响应做出判断,可以利用网上现有的超级Ping工具
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/ -
如下图,对域名进行多点解析,返回了大量不同的IP地址,则可以判定为存在CDN
在超级ping时,如果一个IP地址重复数量很大,也基本可以判断为真实IP地址
②、uslookup解析
- 使用命令行自带的域名解析命令,如果解析到多个IP地址,同样可以判断为存在CDN
③、根据抓包判断
-
若响应数据包中存在
x-cache
、x-swift
等字眼,一般就可判断响应数据包是有CDN节点发过来的,则判定为存在CDN,如下图:详细介绍请看这篇博客: 从HTTP响应头看各家CDN缓存技术_jeffasd的博客-CSDN博客
④、其他
-
一般较大型网站都存在CDN
-
对用户响应速度要求较高的网站一般也存在CDN,如视频网站
2.2、CDN绕过
①、子域名查询
- 一些网站只对访问量较大的主站做CDN,而子站没有CDN服务,可以以子站域名为入手点
- 或者,一些网站对
www.xx.com
这种有3w域名做了CDN,而对xx.com
没有做,则xx.com
暴露出的IP地址可能就是真实IP地址
// 子域名查询的接口
http://z.zcjun.com
https://phpinfo.me/domain
②、邮件服务查询
-
网站的邮箱服务器一般只是内部人员在使用,访问量不大,因此一般不存在CDN
-
通过查看邮件源代码可查到IP地址,qq邮箱查看邮件源代码方式如下:
-
也可通过Foxmail等邮件软件查看
③、国外节点请求
- 很多网站只在国内部署有CDN,通过国外IP地址访问,就可以访问到真实地址(这里涉及到科学上网,懂得都懂)
④、通过遗留文件搜索全网
- 例如phpinfo中会遗留IP地址,有的网站根目录下面默认会有phpinfo.php文件,管理员可能没有删除,就可以通过方法它来获取信息
- 使用ZMAP工具扫描全网
⑤、网络测绘搜索引擎
- shodan黑暗搜索引擎,搜索网站子域名和特定的网站logo哈希值
- 国内的fofa或者zoomeye
⑥、耗尽CDN流量
- 对节点持续高流量访问,耗尽节点的流量,从而导致节点不能正常工作,就可以直接去访问主站(高成本且违法!!!)
⑦、其他手段
-
使用CDN鉴别工具:fuckcdn等
-
使用网上的检测真实IP的接口辅助判断:
https://get-site-ip.com/ https://tools.ipip.net/cdn.php
-
社会工程学手段:
- 网站备案号和备案地址
- 网站的数字证书
- github信息泄露
-
host碰撞真实IP
-
历史DNS记录,没有使用CDN之前的DNS记录