绕CDN找源站
ssooking Lv5

CDN介绍

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

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

判断是否存在CDN

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

1、多地ping

通过多地区同时ping目标域名,对比IP地址是否相同,如果ping出来的IP地址不同,则可能使用了CDN服务。常用在线工具:

2域名解析

使用nslookup或dig命令对域名进行解析,一方面查看是否解析出多个IP,注意这些IP归属地是否是CDN服务商的IP。另一方面,如果使用了CDN或者WAF,通常会解析到特殊主机记录,如下则是使用了cloudflare和云盾的DNS解析结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ 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

3、在线工具判断

1
2
http://www.cdnplanet.com/tools/cdnfinder/
https://www.ipip.net/ip.html

绕过CDN查找网站真实IP

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

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

DNS历史解析记录

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

常用在线工具:

子/父名查询

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

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

常见在线子域名查询工具如下:

SSL证书查询

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

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

查找所有目标站点是该https证书的站点

1
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com

匹配服务器标头

1
80.http.get.headers.server:cloudflare

SSRF漏洞

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

邮件头信息

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

网络空间安全引擎搜索

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

国外主机解析域名

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

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

1
https://dnscheck.pingdom.com/

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

1
BIGipServer<pool_name>=vi20010112000000000000000000000030.20480

相关工具

在线工具

其他搜集的工具

参考

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

  • Post title:绕CDN找源站
  • Post author:ssooking
  • Create time:2020-03-16 21:36:00
  • Post link:https://ssooking.github.io/2020/03/绕cdn找源站/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.