一. CDN知识-工作原理及阻碍
(一)工作原理
1.概述:CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
2.工作原理,前置知识:
(1)传统访问:用户访问域名–>解析服务器IP–>访问目标主机
(2)普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机
(3)带WAF的CDN:用户访问域名–>CDN节点(WAF)–>真实服务器IP–>访问目标主机
3.阻碍,CDN节点会隐藏站点的真实IP,获取不到源服务器的真实信息,影响安全测试的工作进程。
二.CDN配置-域名&区域&类型
1.需要加速的域名
2.加速的区域
3.加速服务类型,如文件,视频,图片,全站加速等
4.原站信息,被加速的站点的原本的真实服务器地址
三.CDN绕过-靠谱十余种技战法
(一)判断是否存在CDN
1.nslookup命令。
2.各地Ping,出现多个ip地址即为启用了CDN。
(二)CDN绕过方法
1.子域名绕过,很多站点只加速了主站或者部分域名,没有对泛解析进行加速,通过子域名查找可以查找服务器的真实IP
2.历史DNS记录。
3.利用网站漏洞,遗留文件。
(1)phpinfo文件中的记录的ip地址,适用于没有内网网卡的服务器。
(2)ssrf漏洞,该漏洞会接受用户的数据并利用服务器去请求,日志会记录访问日志的ip地址,对方服务器会去请求你设置的访问的ip,利用该漏洞访问对方服务器资源,从服务器响应数据获取真实IP。
4.从CDN本身入手,社工等方法。
5.利用mx记录或邮件,很多站点都有sendmail的功能,而且邮件系统一般在内部没有经过CDN解析,邮件源码中就会包含真实IP,可以通过主动邮件配合备案信息推算真实IP。
6.国外请求,利用一些欠发达偏远国家的地址去请求,能够比较容易获取真实IP。
7.扫描探测,通过信息收集,缩小范围,配合工具扫描真实IP。
8.zmap扫描,全网扫FuckCDN,https://github.com/Tai7sy/fuckcdn
9.黑暗引擎搜索,如shodan,fofa,zoomeye。特有的http头部(如server类型、版本、cookie等信息)、特定keyword(如title、css、js、url等)、特定的IP段搜索(如fofa支持C段搜索)等。
10.接口查询,https://get-site-ip.com/
(三)找到真实IP,修改host文件
1.修改host文件,直接解析到真实ip,再次访问就不会访问到CDN节点,安全测试可以顺利进行
2.Windows,C:\Windows\System32\drivers\etc\hosts
3.Linux,/etc/host
4.MAC,/private/etc/hosts
四.案例资源
1.超级Ping:https://www.17ce.com/
2.查询:https://get-site-ip.com/
3.国外请求:https://tools.ipip.net/cdn.php
4.全网扫描:https://github.com/Tai7sy/fuckcdn