首页 / 默认分类

绕过CDN找目标源站

CDN介绍

CDN(Content Delivery Network)内容分发网络,是一种利用分布服务器集群组成流量分配管理网络平台,从而提高用户访问速度的技术。目前有很多厂家能提供这种服务,如Amazon CloudFront阿里云CDN等。收费上,CDN服务主要是按宽带收、和按请求数收费。

在渗透测试过程中,经常会遇到云WAF会与CDN一起使用的情况。由CDN进行域名解析,指向WAF,最后再到源站,如Cloudflare阿里云WAF等,通用部署方法可以参考同时部署WAF和CDN。遇到这种情况时,给渗透测试带来了很大阻碍,我们可以尝试绕过CDN找到其源站的真实地址,从而直接绕过WAF直接访问目标源站进行渗透工作。

判断是否存在CDN

首先我们需要确认目标网站是否使用了CDN服务。

$ dig hostadvice.com NS
.....
;; ANSWER SECTION:
hostadvice.com.        86400    IN    NS    phil.ns.cloudflare.com.
hostadvice.com.        86400    IN    NS    eva.ns.cloudflare.com.
.....

$ nslookup xxxxx.cn
Server:        10.16.0.222
Address:    10.16.0.222#53

Non-authoritative answer:
xxxxx.cn    canonical name = n2tgyckbgrmqfinzwtdhzketipcvyyv1.yundunwaf2.com.
Name:    n2tgyckbgrmqfinzwtdhzketipcvyyv1.yundunwaf2.com
Address: 47.110.175.169

绕过CDN查找网站真实IP

如果确认存在CDN,就该考虑如何去绕过从而找到目标的真实IP。通常思路有以下几个:

  • DNS历史解析记录
  • 子/父域名查询
  • 网络空间安全引擎搜索
  • 信息泄露
  • SSL证书信息
  • 服务器探针文件、git/svn信息泄露、报错信息、日志信息等
  • SSRF漏洞
  • 邮件头信息:让服务器发送邮件,查看邮件头信息;给服务器发送一封错误的邮件地址信息,看是否有错误回复
  • 国外主机解析域名
  • 网站APP
  • 全网扫描对比banner:zmap、masscan

DNS历史解析记录

我们可以查询域名历史上解析到过哪些IP,因为在使用CDN之前,域名解析过的IP很可能是服务器的真实IP地址。

常用在线工具:
SecurityTrails
微步在线情报社区
https://viewdns.info/iphistory/
https://dnsdb.io/
https://sitereport.netcraft.com/
https://www.dnsqueries.com/en/domain_check.php
https://dnsdumpster.com/

子/父名查询

CDN服务是收费服务,对于资产较多的大型企业或组织来说,可能不会给所有域名都使用CDN。因此可以搜集子/父域名信息,通过子/父域名IP尝试找到源IP。并且通常大型组织的多个资产会分布在一个C段,可以以此作为确认参考。

子域名信息可以使用常见子域名爆破工具,如:OneForAll。

常见在线子域名查询工具如下:
SecurityTrails
https://dnsdb.io/zh-cn/

SSL证书查询

通常接入CDN要求服务器支持SSL并具有证书,SSL/TLS证书通常包含域名、子域名和电子邮件地址。而通过访问IP的443端口可以直接看到证书信息,如果全网扫描IP记录网站证书,则可以对比证书信息找到目标站点。

Censys实现了对整个互联网IP的扫描和证书探测,并记录到数据库中,我们可以通过该网站查询具有相同证书的站点尝试目标网站的真实IP。使用Censys,在输入框中选择Certificates,搜索目标域名,可以看到与目标域名对应的相关资产列表。单击右侧的Explore => What's using this certificate? => IPv4 Hosts。其他语法:

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com
80.http.get.headers.server:cloudflare

SSRF漏洞

如果目标网站存在SSRF漏洞,可以让目标网站主动发起请求从而泄露真实IP。

邮件头信息

如果网站具有邮箱注册、邮箱找回密码、RSS邮件订阅等功能场景,可以尝试让网站给自己发送邮件,从邮件头信息中获取到网站的真实IP。

网络空间安全引擎搜索

可以使用Fofa、Shodan、Zoomeye搜索,查找扫描收录的域名IP信息。

国外主机解析域名

CDN全球加速和国内加速价格差别较大,一些只有国内业务的企业可能不会买全球加速,因此通过海外的站点进行ping测试或DNS解析,有可能找到真实ip。

大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。
https://dnscheck.pingdom.com/

F5 BIG-IP LTM Cookie

F5负载均衡产品( BIG-IP LTM)在做负载均衡时,会利用持久性Cookie来实现会话保持,Cookie包含了经过编码处理的目标服务器IP和端口信息。当服务器使用F5负载均衡产品做时,可以通过转换Cookie的相关参数获取到目标IP。方法参考:How To Decode BIG IP F5 Persistence Cookie Values通过F5 BIG-IP LTM的会话Cookie获取Facebook服务器内网IP

BIGipServer<pool_name>=vi20010112000000000000000000000030.20480

相关工具

网站配置不当

在配置CDN的时候,需要指定域名、端口等信息,有时管理员因疏忽或配置不完整,会导致部分访问入口未受到CDN保护,从而使得防护被轻易绕过。

案例1:域名解析不全

为了方便用户访问,站点常常将 www.test.comtest.com 解析到同一个源站。如果CDN服务只配置加速了 www.test.com 这个子域名,而忽略了根域名 test.com,那么攻击者直接访问 test.com 就可能直达源站服务器,从而绕过CDN的防护与加速。

核心要点:确保所有对外提供服务的域名和子域名都已正确接入CDN。

案例2:协议覆盖不全

站点同时支持 HTTP 和 HTTPS 协议访问,但CDN只配置并加速了 HTTPS 协议流量。在这种情况下,通过 HTTP 协议(如 http://www.test.com)访问站点,请求将不会经过CDN节点,而是直接与源站通信,导致CDN的WAF防护、缓存加速等功能失效。

核心要点:检查并确保所有需要防护的访问协议(如HTTP/HTTPS)均已正确配置到CDN。

此类问题的根源在于,未能将所有通向源站的潜在访问路径(如不同的域名、子域名、协议、端口)统一纳入CDN的管理范畴,从而留下了可以被利用的安全缺口。在安全评估和配置检查时,应进行全面的路径枚举与测试。

参考

https://blog.csdn.net/systemino/article/details/98188213
https://www.cnblogs.com/qiudabai/p/9763739.html
https://zhuanlan.zhihu.com/p/33440472
https://www.secpulse.com/archives/136219.html

本文章转裁至ssooking's notebook

edit 发表评论

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