常见漏洞验证121 条

Apache Shiro 配置自查

Shiro 的 rememberMe 机制曾是反序列化风险入口:核查版本与补丁状态、rememberMe 使用必要性以及密钥管理方式。

Apache Shiro 配置自查

Apache Shiro 的记住我机制曾是多起反序列化问题的入口:它把登录状态序列化、加密后写入客户端 Cookie,服务端收到后解密并反序列化还原对象。如果密钥使用默认值或配置不当,攻击者就可以构造恶意序列化数据交给服务端还原,从而触发代码执行。自查因此聚焦三件事:组件版本与补丁状态、记住我功能是否真的需要、以及密钥是否自定义并能轮换。

基本信息

自查内容组件版本、记住我是否启用、密钥来源与管理方式
处置方式按官方公告升级到修复版本;不需要则关闭该功能
加固要求自定义密钥并制定轮换计划,严格执行官方文档步骤
报告口径只写处置状态与验证结论,不复述密钥与配置细节

典型使用场景

  • 统一认证框架:多个业务系统共用 Shiro 做登录与权限
  • 历史系统维护:早期版本长期未升级,补丁状态不明
  • 功能冗余:实际不需要自动登录却仍启用了记住我
  • 密钥沿用:部署时复制配置模板,密钥未做替换
  • 第三方集成:外部系统对接时替换了配置但未同步加固

自查步骤

自查步骤
1. 清点应用中 Shiro 的版本与相关配置项
2. 确认是否启用记住我功能,以及密钥的来源与管理方式
3. 对照官方安全公告确认当前版本是否为修复版本
4. 不需要该功能的应用直接关闭,减少暴露面
5. 记录:应用清单、升级状态、密钥管理方式与责任人

核查项与处置

核查项现状判定处置方向
组件版本是否为公告声明的修复版本升级并复查内嵌依赖
记住我功能是否实际被业务使用不使用则关闭,减少入口
密钥来源是否使用默认值或模板值替换为随机密钥并纳入密钥管理
密钥轮换是否有轮换记录制定轮换计划并验证兼容性
密钥与具体配置细节不要写入报告正文:报告只给出处置状态与验证结论,细节另行走受控渠道沟通。

易错点

  • 升级后仍沿用历史密钥:攻击面并未真正收口,需同步更换密钥
  • 把未使用该功能的应用列入高危清单:结论失实,削弱报告可信度
  • 只升级外层应用:内嵌与传递依赖仍是旧版本,问题依旧存在
  • 密钥写进配置文件并随代码分发:等同于公开密钥,防护失效
  • 报告复述密钥与配置细节:造成二次泄露,应改为结论性描述

数据来源与参考

  • Apache Shiro 官方安全公告
  • CWE-502
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌