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服务。常用在线工具:
- http://ping.chinaz.com/
- https://www.17ce.com/
- https://asm.ca.com/en/ping.php
- https://www.cdnperf.com/tools/cdn-latency-benchmark
2域名解析
使用nslookup或dig命令对域名进行解析,一方面查看是否解析出多个IP,注意这些IP归属地是否是CDN服务商的IP。另一方面,如果使用了CDN或者WAF,通常会解析到特殊主机记录,如下则是使用了cloudflare和云盾的DNS解析结果:
1 | $ dig hostadvice.com NS |
3、在线工具判断
1 | http://www.cdnplanet.com/tools/cdnfinder/ |
绕过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/?url=
- https://www.dnsqueries.com/en/domain_check.php
- https://dnsdumpster.com/
子/父名查询
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
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 |
相关工具
在线工具
- http://www.cdnplanet.com/tools/cdnfinder/
- https://www.ipip.net/ip.html
- https://www.cdnplanet.com/tools/cdnfinder/
- https://www.cdnperf.com/tools/cdn-latency-benchmark
- https://securitytrails.com/
其他搜集的工具
- Cloudsnare.py:censys证书信息(需要API密钥)
- HatCloud:crimeflare、ipinfo.io
- CrimeFlare:crimeflare、ipinfo.io
- bypass-firewalls-by-DNS-history:securitytrails、crimeflare
- CloudFail:dnsdumpster、crimeflare、子域名暴力破解
- CloudFlair:需要censys API密钥
- CloudIP:通过nslookup查询某些子域名(如ftp、cpanel、mail、direct、direct-connect、webmail、portal等)
参考
https://blog.csdn.net/systemino/article/details/98188213
https://www.cnblogs.com/qiudabai/p/9763739.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.