文章总结: 本文介绍了缓存欺骗漏洞中的分隔符差异问题,重点分析了RubyonRails框架使用点号作为分隔符的特殊情况,以及编码字符如%00作为分隔符的处理差异。当缓存系统和后端应用对URL中分隔符的解释规则不一致时,可能导致敏感数据通过公开缓存泄露,为后续漏洞挖掘提供了特征点参考。 综合评分: 88 文章分类: 漏洞分析,WEB安全
“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异(续)
原创
升斗安全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《“缓存欺骗第三章第四节”缓存规则中的另一个特殊规则–分隔符差异(续)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论