如果错过互联网,与你擦肩而过的不仅仅是机会,而是整整一个时代。
cdn是基于显示网络的智能虚拟网络,依靠广布的边缘服务器,通过中心平台的负载均衡,内容发布,资源调度等功能,使用户就近获取所需内容并提高响应速度和命中率。
CDN会隐藏真实的IP地址,使无法对目标网站进行渗透,但CDN站点优惠提供该网站的镜像站点,且可以跟站点服务器进行交互,所以SQL注入,XSS等漏洞挖掘不会受到影响。
攻击者获取到对CDN的控制权之后,将恶意内容注入到CDN上的文件上面,或完全替换掉该文件,可以攻击所有从该CDN获取文件的站点。表现一般为网站和CDN均为HTTPS的,但总是能看到广告甚至会唤醒其他APP,或者跳转到其它网站上面。
检测方法:SRI(Subresource Integrity),子资源完整性。指浏览器通过验证资源完整性来判断其是否被篡改,验证获取文件的哈希值是否和你提供的哈希值一样来判断资源是否被篡改。
原理:当用户请求 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 ;缓存服务器无视头文件,只根据后缀判断是否缓存到本地;受害者访问页面时必须已登录。
原理:攻击者向网站发送一个带有恶意头文件的http请求,CDN会直接把此请求发送给原网站,并把由恶意头文件引起的网站异常响应也缓存下来,其他用户访问的时候就会直接显示此异常界面。
攻击变种:
防护方法:
在CDN中只存储404(找不到页面),502(内部网络拥堵)之类简单的,标准的错误页面,并在安全设备上加上防御。
其他错误代码及含义:400(页面不存在或请求错误),403(资源不可用),405(资源被禁止)。
CDN对动态请求无法处理,会直接转给源服务器,攻击者利用此漏洞对服务器发起大量的动态请求,从而使源服务器出现拒绝访问。
如基于SSL的攻击,此攻击主要针对在线服务,网站受到攻击之后,必须要客户提供SSL密钥来解密流量,如果客户不愿意提供此密钥的话,攻击会击中网站的源服务器,在线网站就会被击垮。
CDNJS库(一种JS/CSS资料库)中缓存过期后,自动下载更新功能通过下载用户管理的Git存储的nmp包并复制它来更新库,此时,通过将特制的 .tgz 文件发布到nmp并等待其更新后,该特制文件会被写入定期执行的脚本文件,并执行任意代码。
在做Web渗透测试的时候,直接攻击CDN只是攻击的网站数据的缓存,而绕过CDN可以使我们直接获取到服务器的真实IP地址,从而更好地进行安全测试。
绕过方法:
原文链接:https://blog.csdn.net/weixin_72324806/article/details/127849525?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836857616800182185151%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836857616800182185151&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-8-127849525-null-null.nonecase&utm_term=cdn%E7%B3%BB%E7%BB%9F
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33318