网络安全学习笔记——CDN漏洞
目录
如果错过互联网,与你擦肩而过的不仅仅是机会,而是整整一个时代。
CDN是基于显示网络的智能虚拟网络,依靠广布的边缘服务器,通过中心平台的负载均衡,内容发布,资源调度等功能,使用户就近获取所需内容并提高响应速度和命中率。
CDN会隐藏真实的IP地址,使无法对目标网站进行渗透,但CDN站点优惠提供该网站的镜像站点,且可以跟站点服务器进行交互,所以SQL注入,XSS等漏洞挖掘不会受到影响。
CDN攻击方式
CDN劫持
攻击者获取到对CDN的控制权之后,将恶意内容注入到CDN上的文件上面,或完全替换掉该文件,可以攻击所有从该CDN获取文件的站点。表现一般为网站和CDN均为HTTPS的,但总是能看到广告甚至会唤醒其他APP,或者跳转到其它网站上面。
检测方法:SRI(Subresource Integrity),子资源完整性。指浏览器通过验证资源完整性来判断其是否被篡改,验证获取文件的哈希值是否和你提供的哈希值一样来判断资源是否被篡改。
CDN缓存欺骗
原理:当用户请求 https://www.baidu.com/nonexist.css 时,https://www.baidu.com 是真实存在的,而后面的部分不存在,此时浏览器会根据使用的web技术和配置返回 404 not found或者 200 OK,当返回的是200 OK时,缓存服务器会把 https://www.baidu.com/nonexist.css 当作是 https://www.baidu.com 缓存起来,你在该网站上做的任何改动都能在攻击者访问网站时提供给攻击者。
攻击成功的条件是:web服务器解析的返回结果是 200 OK ;缓存服务器无视头文件,只根据后缀判断是否缓存到本地;受害者访问页面时必须已登录。
CDN缓存Dos攻击(CPDos)
原理:攻击者向网站发送一个带有恶意头文件的http请求,CDN会直接把此请求发送给原网站,并把由恶意头文件引起的网站异常响应也缓存下来,其他用户访问的时候就会直接显示此异常界面。
攻击变种:
- HHO(HTTP Header Oversize)多次发送巨大头文件的HTTP请求,使服务器阻塞并返回异常,继而让CDN储存此异常。
- HMC(HTTP MEAT Character)在头文件的meta标签中使用@,、等特殊符号使服务器发生异常,返回错误界面,并被CDN储存下来。
- HMO(HTTP Method Override)通过注入和之前请求类型不同的请求类型来转换请求类型,使服务器无法处理,返回异常结果从而被CDN储存起来。
防护方法:
在CDN中只存储404(找不到页面),502(内部网络拥堵)之类简单的,标准的错误页面,并在安全设备上加上防御。
其他错误代码及含义:400(页面不存在或请求错误),403(资源不可用),405(资源被禁止)。
CDN DDos攻击
CDN对动态请求无法处理,会直接转给源服务器,攻击者利用此漏洞对服务器发起大量的动态请求,从而使源服务器出现拒绝访问。
如基于SSL的攻击,此攻击主要针对在线服务,网站受到攻击之后,必须要客户提供SSL密钥来解密流量,如果客户不愿意提供此密钥的话,攻击会击中网站的源服务器,在线网站就会被击垮。
CDN任意代码执行漏洞
CDNJS库(一种JS/CSS资料库)中缓存过期后,自动下载更新功能通过下载用户管理的Git存储的nmp包并复制它来更新库,此时,通过将特制的 .tgz 文件发布到nmp并等待其更新后,该特制文件会被写入定期执行的脚本文件,并执行任意代码。
CDN绕过
在做Web渗透测试的时候,直接攻击CDN只是攻击的网站数据的缓存,而绕过CDN可以使我们直接获取到服务器的真实IP地址,从而更好地进行安全测试。
绕过方法:
- ping顶级域名:如果网站没有给顶级域名配置CDN的话,大概率可以获取其真实的IP地址;
- 国外访问:使用国外的IP地址访问;
- 利用邮件系统:查看邮件原文寻找IP地址;
- 通过网站证书:在网站证书的更多信息里找到序列号转化为10进制;
- 通过备案信息查找IP地址;
- 去掉www。
CDN作为作为内容分发网络,一旦出现故障,不仅不会更快更好地传输文件,甚至会造成使用其的网站无法访问,影响日常生活和办公。Fastly CDN 中断,Amazon、GitHub、英国政府等网站集体脱机 - FreeBuf网络安全行业门户