Apache Shiro 远程代码执行漏洞复现

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试评论22,1897字数 318阅读1分3秒阅读模式

漏洞介绍

Apache Shiro 存在高危代码执行漏洞。该漏洞是由于Apache Shiro cookie中通过 AES-128-CBC 模式加密的rememberMe字段存在问题,用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。

影响版本

Apache Shiro 1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1版本。

环境搭建

shiro 环境下载地址 https://github.com/jas502n/SHIRO-721
exp 下载地址 https://github.com/Geekby/shiro_rce_exp
复现环境:ubuntu16.04 + tomcat8 + shiro 1.4.1

将下载好的 samples-web-1.4.1.war 包部署到 tomcat 上。
Apache Shiro 远程代码执行漏洞复现-图片1

漏洞复现

1.访问shiro登录页面,并登陆
Apache Shiro 远程代码执行漏洞复现-图片2
Apache Shiro 远程代码执行漏洞复现-图片2

2.访问任意业务,抓包,得到Cookie中的rememberMe
Apache Shiro 远程代码执行漏洞复现-图片3

3.生成java payload
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections1 'touch /tmp/test' > payload.class
Apache Shiro 远程代码执行漏洞复现-图片4

4.执行exp,经过了一个多小时的爆破,得到padding oracle attack后的cookie
Apache Shiro 远程代码执行漏洞复现-图片5
Apache Shiro 远程代码执行漏洞复现-图片5

5.复制该cookie,然后重放一下数据库,即可成功执行命令
Apache Shiro 远程代码执行漏洞复现-图片6
6.检查一下执行结果,可以看到成功创建了一个test文件
Apache Shiro 远程代码执行漏洞复现-图片6

防范建议

目前官方尚未发布漏洞修复补丁
临时防范建议:
安全设备尝试拦截爆破流量,及时阻止攻击者进行尝试性攻击。

http://www.oniont.cn/index.php/archives/298.html

免责声明:本站某些文章、信息、图片、软件等来源于互联网,由本网整理发表,希望传递更多信息和学习之目的,并不意味赞同起观点或证实其内容的真实性以及非法用途。 如设计、版权等问题,请立即联系管理员,我们会给予更改或删除相关文章,保证您的权利。
高性能云服务器2折起
 
OnionT@KillBoy
匿名

发表评论

匿名网友

拖动滑块以完成验证