一、CDN知识普及
1、概念定义
CDN的全称是Content Delivery Network,即内容分发网络(因为这项技术是对内容进行分发,因此就叫做CDN了)。
2、基本思路
1.应尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输更快、更稳定。
2.通过在网络各处放置节点服务器(即将内容缓存在终端用户附近),CDN系统能够实时根据网络流量和各节点的链接、负载状况以及到用户的距离、相应时间等综合信息,将用户的请求重新导向离用户最近的服务节点上。
3、与镜像服务器的区别
镜像服务器是源内容服务器的完整复制。而CDN则是部分内容的缓存,智能程度更高。可以理解为“CDN=更智能的镜像+缓存+流量导流”。
4、目的作用
目的:解决因分布、带宽、服务器性能带来的访问延迟问题。
作用:使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网络的响应速度。
安全:内容进行分发后,源服务器的IP被隐藏,受到攻击的概率会大幅下降。而且,当某个服务器故障时,系统会调用临近的健康服务器,进行服务,避免对用户造成影响。
5、缓存的内容和更新
1.缓存html、图片、css、xml等静态资源,不缓存含有?的动态地址、jsp、php,js文件也不缓存(除非特殊设置),缓存原站返回HTTP状态为20*或304,不缓存其他状态(例如404,500,503)。
2.用户首次请求,CDN从原站抓取后缓存,直到文件过期后有用户请求再次更新。
二、判断网站存在CDN方法
判断方法
单纯只使用DNS解析,直接PING就会显示出自己的真实IP,如果又使用CDN,PING出来的IP就不是用户的真实IP,而是CDN服务器的IP节点。这需要绕过CDN后去找真实IP地址。
方法1:
使用Linux dig命令进行测试。
dig www.baidu.com
方法2:
使用windows nslookup进行测试。
之后在Address栏中有多个IP地址,则表示使用了CDN,单个IP地址则说明未使用CDN:
方法3:
多地ping。
如果多地ping同一网站,出现多个解析IP地址,则说明使用了CDN进行内容分发。
http://ping.chinaz.com/
http://ping.aizhan.com/
http://ce.cloud.360.cn/
https://www.wepcc.com/
如下图,CDN提供商显示多个独立IP,应该是使用了CDN。
方法4:
查看浏览器响应头信息X-Cache、VIA等。
路径:在浏览器界面,按F12,打开浏览器调试界面,然后选择“网络”或者是“Network”。
根据阿里云官网解释:若:X-Cache:HIT TCP_MEM_HIT 表示命中缓存;若:X-Cache:MISS TCP_MISS 则表示未命中缓存。
腾讯CDN节点:
X-Cache-Lookup:Hit From MemCache 表示命中CDN节点的内存;
X-Cache-Lookup:Hit From Disktank 表示命中CDN节点的磁盘;
X-Cache-Lookup:Hit From Upstream 表示没有命中CDN。
解释:
1)X-cache-lookup:
指专门查看代理服务器中是否有某个网页缓存:有就返回HIT,没有返回MISS。
2)X-cache:
指浏览器从何处、在哪个代理缓存载入的网页文件:服务器名后的3128指服务器端口。根据 X-Cache 查看当前该资源是否有在 CDN的 L1 节点缓存,而查看 L2 节点的缓存情况则需要根据 Via 头中的第一部分查看,如果是 M 即是 MISS,表示对应的资源没有在对应的CDN节点上缓存;而出现 H表示对应的资源有在CDN节点上缓。
3)VIA:包含有四段信息,其中第一段和第三段会有一个M或者H的标识。第一段说明L2节点的缓存情况,第三段指的是L1节点的缓存情况,这两个其中有一个包含H,就表示对应的资源已经在CDN节点上进行了缓存。那这一次访问就不需要再回到源站拉取对应的资源了。
4)X-Swift-SaveTime 表示该资源缓存到 CDN 节点上的 GMT 时间(相比于北京时间晚8小时)。
5)X-Swift-CacheTime 表示该资源在 CDN 节点上缓存多长时间会过期。
|
方法5:
使用CDN查询工具进行查看。
CDNPLANET:
http://www.cdnplanet.com/tools/cdnfinder/
*左右滑动查看更多
三、绕过CDN寻找真实IP方法
方法1:
DNS历史解析记录。
查询域名的历史解析记录,可能会找到网站使用CDN前的解析记录,从而获取真实ip,相关查询的网站有:
iphistory:https://viewdns.info/iphistory/
DNS查询:(https://dnsdb.io/zh-cn/)
微步在线:(https://x.threatbook.cn/)
域名查询:(https://site.ip138.com/)
DNS历史查询:(https://securitytrails.com/)
Netcraft:https://sitereport.netcraft.com/?url=github.com
*左右滑动查看更多
方法2:
查找子域名分站。
很多时候,一些重要的站点会做CDN,而一些子域名站点并没有加入CDN,而且跟主站在同一个C段内,这时候,就可以通过查找子域名来查找网站的真实IP。
常用的子域名查找方法和工具:
1、搜索引擎查询:如Google、baidu、Bing等传统搜索引擎。
2、一些在线查询工具,如:
http://tool.chinaz.com/subdomain/
http://i.links.cn/subdomain/
http://subdomain.chaxun.la/
http://searchdns.netcraft.com/
https://www.virustotal.com/
3、 子域名爆破工具:
Layer子域名挖掘机
wydomain:https://github.com/ring04h/wydomain
subDomainsBrute:https://github.com/lijiejie/
Sublist3r:https://github.com/aboul3la/Sublist3r
*左右滑动查看更多
方法3:
网站邮件头信息。
一般邮件服务器在内部,没有CDN解析,邮件返回的域名IP可能是真实IP。
比如邮箱注册、邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,从而获取到网站的真实IP。
方法4:
网络空间安全引擎搜索。
通过关键字或网站域名,就可以找出被收录的IP,很多时候获取到的就是网站的真实IP。
钟馗之眼:
https://www.zoomeye.org
Shodan:
https://www.shodan.io
Fofa:
https://fofa.so
方法5:
利用SSL证书寻找真实IP。
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。因此SSL/TLS证书成为了攻击者的切入点。
在https://crt.sh上查找目标网站SSL证书的HASH,然后再用Censys搜索该HASH即可得到真实IP地址。
SSL证书搜索引擎:
https://censys.io/ipv4?q=github.com
*左右滑动查看更多
方法6:
国外主机解析域名。
大部分 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的DNS查询,很可能获取到真实IP。
提示:需要找冷门国外DNS才行,像谷歌的DNS,国内用的人越来越多了,很多CDN提供商都把谷歌DNS作为国内市场之一,所以能查到的结果自然会和国内差不了多少 。
国外多PING测试工具:
https://asm.ca.com/zh_cn/ping.php
http://host-tracker.com/
http://www.webpagetest.org/
https://dnscheck.pingdom.com/
方法7:
扫描全网。
通过Zmap、masscan等工具对整个互联网发起扫描,针对扫描结果进行关键字查找,获取网站真实IP。
1、ZMap号称是最快的互联网扫描工具,能够在45分钟扫遍全网。
https://github.com/zmap/zmap
2、Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。
https://github.com/robertdavidgraham/masscan
*左右滑动查看更多
方法8:
配置不当导致绕过。
在配置CDN的时候,需要指定域名、端口等信息,有时候小小的配置细节就容易导致CDN防护被绕过。
案例1:
为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过 CDN 了。
案例2:
站点同时支持http和https访问,CDN只配置 https协议,那么这时访问http就可以轻易绕过。
方法9:
网站phpinfo文件:phpinfo.php。
这个命中率很高,很多大站都喜欢放个phpinfo,具体要看路径字典强度,是很容易跑出来的。
方法10:
直接ping xxx.com而不是www.xxx.com。
ping 命令这样写 ping xxx.com 而不是 ping www.xxx.com。ping xxx.com一般都会是真实IP,因为了解到现有很多CDN厂商基本只要求把www.xxx.com cname到cdn主服务器上去。www.xxx.com 和 xxx.com是两条独立的解析记录,一般只会把 www.xxx.com做 CDN。
方法11:
如果目标站点有自己的APP,通过抓取APP请求来获取ip。
四、小结
1、寻找真实IP的作用
1. 对于执法机构而言,如果发现互联网上出现非法的行为,可以传唤ISP(互联网服务提供商)获取该IP地址的详细信息,从而打击违法犯罪活动。
2. 对于普通大众而言,可以有效判断网站的位置信息,有效杜绝一些明显的水军信息,避免被舆论信息带偏认知。
3.对于网络安全人员而言,查找到真实的IP地址有助追踪溯源,进一步发现攻击者的线索。
2、防止真实IP泄露建议
往期回顾
原文始发于微信公众号(安恒信息安全服务):九维团队-暗队(情报)| 判断查找CDN背后的真实IP