安全研究员 iustin ladunca(youstin)近期针对许多网站(包括一些高流量的在线服务)进行了调研,结果发现了 70 个具有不同影响的缓存中毒漏洞。
根据介绍,web 缓存中毒攻击的目标是网络服务器和客户端设备之间的中间存储点,如 point-of-presence servers、代理和负载均衡器。中间商通过存储本地版本的 web 内容来加快向 web 客户端的传送速度,从而帮助提高网站的性能。web 缓存中毒攻击操纵了缓存服务器的行为,以及它们如何响应客户的特定 url 请求。
ladunca 自 2020 年 11 月开始研究 web 缓存中毒;然而仅仅几周后,他就发现了两个新的缓存中毒漏洞:“这让我意识到缓存中毒的攻击面有多大”。他在一篇博客中详细介绍了自己是如何发现和报告网络缓存漏洞的,其中包括有 apache traffic server、github、gitlab、hackerone 和 cloudflare 以及其他服务器。
“一种常见的模式是缓存服务器被配置为只缓存静态文件,这意味着攻击只限于静态文件。即便如此,仍然有很大的影响,因为现代网站严重依赖 js 和 css,删除这些文件会真正影响应用程序的可用性。”
多个 web 缓存漏洞导致拒绝服务(dos)攻击。缓存服务器使用一些 headers 作为 keys 来存储和检索 url 请求。通过在 unkeyed headers 中使用无效值,ladunca 能够强制服务器缓存错误响应,并在之后提供这些响应而不是原始内容,这会使得客户无法访问目标网页。
“就所使用的技术而言,迄今为止最常见的是通过 unkeyed headers 进行 cp-dos,这可能占总发现的 80%。”
其他 web 缓存中毒漏洞可能会导致跨站点脚本(xss)攻击。例如,一个漏洞可以强制缓存服务器将 javascript 文件请求转发到攻击者控制的地址。在另一种情况下,ladunca 还能够将缓存请求从一个主机重定向到另一个容易受到基于 dom 的 xss 攻击的主机。
ladunca 因其发现的 70 个网络缓存漏洞,而获得了总计约 4 万美元的漏洞赏金。同时,他也分享了一些相关经验表示,确保 cdn 免受缓存中毒攻击的一个好方法是禁用错误状态代码的缓存,他认为这种缓解措施应该能阻止很大一部分的 cp-dos 攻击。还建议使用 portswigger 的 param miner,这是一个开源工具,可以识别隐藏的、未链接的参数。针对 web 应用程序运行 param miner 可以帮助检测可用于 web 缓存中毒的 unkeyed headers。
不过 reddit 上有网友对 ladunca 的建议进行了反驳称,“禁用错误状态代码的缓存”绝对不是一个可行的解决方案。并指出,如果禁用错误状态代码的缓存,处理错误响应的每个请求都会返回到 origin,从而有效地创建了一个错误率不断增加的 ddos 攻击;这将使得 origin offline,直到有人干预。
更多讨论详情可查看此处。
临时邮箱是什么类型的邮箱,如何使用?SEO虽然重要但是切记过度优化国展网站建设公司网站建设需求-网站建设企业网站建设上有必要添加二维码吗?什么样的网站结构容易提升用户体验度网站建设完成后开展营销推广的十种方法长尾关键词对seo优化的作用