ApacheShiro反序列化远程代码执行 漏洞处理
2024-08-27 13:08:59
Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookierememberMe字段内容分别进行序列化、AES加密、Base64编码操作。但是,AES加密的密钥Key被硬编码在代码里,意味着每个人通过源代码都能漏洞描述拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。
有两种修改方式。
第一种:修改shiro配置文件,修改内容为
<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
<constructor-arg value="rememberMe"/>
<property name="httpOnly" value="true"/>
<property name="maxAge" value="31536000"/><!-- 365天 -->
</bean>
<!-- rememberMe管理器 -->
<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
<property name="cipherKey" value="#{T(org.apache.shiro.codec.Base64).decode('qQFtSnnj/sx7vu51ixAyEQ==')}"/>
<property name="cookie" ref="rememberMeCookie"/>
</bean>
qQFtSnnj/sx7vu51ixAyEQ== 这个是生成AES密钥
生成方式参照:https://www.cnblogs.com/pxblog/p/12485832.html
第二种;替换项目中shiro jar包,替换成1.2.6版本
下载地址:https://yvioo.lanzous.com/b00nueaib
最新文章
- 《LoadRunner12七天速成宝典》来了
- 可爱的Python_课后习题_CDay−2 完成核心功能
- nginx 配置https
- mouse scrollings and zooming operations in linux &; windows are opposite
- JDK的下载与安装
- oc-12-NSString 类简单介绍及用法
- String or binary data would be truncated. The statement has been terminated.
- 2015第19周四jquery版本
- [Python][MachineLeaning]Python Scikit-learn学习笔记1-Datasets&;Estimators
- Linux下一个CD翻录 创CUE 压缩flac攻略
- 用开源软件建垂直搜索引擎 转载 http://news.cnblogs.com/n/60041/
- 使用nodejs爬取和讯网高管增减持数据
- 老李推荐:第2章2节《MonkeyRunner源码剖析》了解你的测试对象: NotePad窗口Activity之NotesList简介
- 分页 js
- Data Base mongodb driver2.5环境注意事项
- sys系统模块
- SSH File Transfer遇到错误"too many authentication failures for root".A protocol error was detected......
- Python 解决 :NameError: name &#39;reload&#39; is not defined 问题
- <;转载>;Mac下,使用sshpass让iterm2支持多ssh登录信息保存
- Python基础知识摘要
热门文章
- Codeforces 1236F - Alice and the Cactus(期望+分类讨论)
- plyr包使用
- bluetooth sig bluetooth asia-深圳之行
- Oracle-一张表中增加计算某列值重复的次数列,并且把表中其他列也显示出来,或者在显示过程中做一些过滤
- 巩固java第五天
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
- 在JTable单元格上 加入组件,并赋予可编辑能力 [转]
- springboot-使用AOP日志拦截实现
- jmeter进阶
- 【Linux】【Services】任务计划、周期性任务执行