“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异(续)

admin 2025-12-22 03:46:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍了缓存欺骗漏洞中的分隔符差异问题,重点分析了RubyonRails框架使用点号作为分隔符的特殊情况,以及编码字符如%00作为分隔符的处理差异。当缓存系统和后端应用对URL中分隔符的解释规则不一致时,可能导致敏感数据通过公开缓存泄露,为后续漏洞挖掘提供了特征点参考。 综合评分: 88 文章分类: 漏洞分析,WEB安全


cover_image

“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异(续)

原创

升斗安全XiuXiu

升斗安全

2025年12月20日 22:56 广东

【文章说明】

  • 目的:本文内容仅为网络安全技术研究与教育目的而创作。
  • 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
  • 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
  • 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。

阅读即代表您同意以上条款。

继续上一章节的内容“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异,关于分隔符差异,除了普通的符号,还有其他的一些特殊字符串或方式的。

对于框架或技术间用法不一致的其他字符,同样存在此类问题。以运行Ruby on Rails框架的源服务器为例(该框架使用点号作为指定响应格式的分隔符),请观察以下请求:

/profile – 该请求由默认HTML格式化程序处理,返回用户资料信息。

/profile.css – 此请求被识别为CSS扩展。由于不存在CSS格式化程序,请求被拒绝并返回错误。

/profile.ico – 此请求使用.ico扩展名,但Ruby on Rails无法识别该格式。默认HTML格式化程序会处理该请求并返回用户资料信息。这种情况下,若缓存配置为存储以.ico结尾的请求响应,系统将把资料信息当作静态文件进行缓存和提供。

编码字符有时也可作为分隔符使用。例如,分析请求/profile%00foo.js的情况:

OpenLiteSpeed服务器将编码的空字符%00用作分隔符。因此,使用OpenLiteSpeed的源服务器会将该路径解析为/profile。

若URL中包含%00,大多数其他框架会返回错误响应。然而,如果缓存系统使用Akamai或Fastly,则会将%00及其后所有内容解析为路径。

以上内容,简单来说,就是当缓存系统和后端应用对URL中的点号(.)或特殊编码字符(如%00) 这些“分隔符”的解释规则不一致时,就可能引发缓存欺骗漏洞,导致敏感数据通过公开缓存泄露。我们先大概了解有这些特征点,对我们后续开展此类漏洞的挖掘测试有较大的帮助。

合集《缓存欺骗漏洞的原理及相关利用手法》系列内容持续更新中,感兴趣的小伙伴们,别忘了收藏、点赞、分享、关注


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:升斗安全 升斗安全XiuXiu《“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异(续)》

评论:0   参与:  2