漏洞介绍
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 上。
漏洞复现
1.访问shiro登录页面,并登陆
2.访问任意业务,抓包,得到Cookie中的rememberMe
3.生成java payload
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections1 'touch /tmp/test' > payload.class
4.执行exp,经过了一个多小时的爆破,得到padding oracle attack后的cookie
5.复制该cookie,然后重放一下数据库,即可成功执行命令
6.检查一下执行结果,可以看到成功创建了一个test文件
评论