
声明:文章所提供的内容和工具仅供于个人学习和研究,严禁传播者利用本文章的相关内容进行非法测试。由于传播、利用此文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
1、Apache Shiro介绍
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,开发者可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
2、漏洞介绍
在Shiro <=1.2.4中,反序列化过程中所用到的AES加密的key是硬编码在源码中,当用户勾选RememberMe并登录成功,Shiro会将用户的cookie值序列化,AES加密,接着base64编码后存储在cookie的rememberMe字段中,服务端收到登录请求后,会对rememberMe的cookie值进行base64解码,接着进行AES解密,然后反序列化。由于AES加密是对称式加密(key既能加密数据也能解密数据),所以当攻击者知道了AES key后,就能够构造恶意的rememberMe cookie值从而触发反序列化漏洞。

3、影响版本
Apache Shiro <= 1.2.4
4、 漏洞复现
4.1 环境搭建
使用docker搭建shiro靶机,命令如下:
//获取docker镜像
docker pull medicean/vulapps:s_shiro_1
//启动容器
docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1
搭建靶机:

访问靶机:

访问正常,靶机搭建成功,靶机IP:10.57.201.77
4.2 工具准备
- shiro_tool.jar漏洞验证工具
- ysoserial工具下载、mvn打包
- shiro.py生成rememberMe的脚本
shiro_tool.jar下载:
https://github.com/wyzxxz/shiro_rce_tool
maven下载:
http://maven.apache.org/download.cgi
maven配置及环境变量参考:
https://zhuanlan.zhihu.com/p/48831465
下载ysoserial工具并打包:
(打包完的ysoser

本文详细介绍了Apache Shiro框架中的反序列化漏洞,包括漏洞产生的原因、影响版本、复现步骤及利用方法,并提供了修复建议。
最低0.47元/天 解锁文章
2157

被折叠的 条评论
为什么被折叠?



