目录

Apache Shiro padding oracle attack漏洞复现

Apache Shiro padding oracle attack漏洞复现

Shiro 使用了 AES-128-CBC 模式对 cookie 进行加密,导致恶意用户可以通过 padding oracle 攻击方式构造序列化数据进行反序列化攻击。

例如之前爆出来的 SHIRO-550 漏洞就是关于 remember 这个cookie 的问题。

环境搭建

shiro 打包环境下载地址 https://github.com/jas502n/SHIRO-721

exp 下载地址 https://github.com/Geekby/shiro_rce_exp

复现环境:ubuntu16.04 + tomcat8 + shiro 1.4.1

1
apt-get install tomcat8 tomcat8-docs tomcat8-examples tomcat8-admin

然后将下载好的 samples-web-1.4.1.war 包部署到 tomcat 上。

漏洞复现

  1. 访问shiro登录页面 https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120105640.png-water_print

  2. 输入用户名密码,点击 Remember Me https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120105850.png-water_print

  3. 访问任意页面,得到 Cookie 中的 rememberMe https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120105923.png-water_print

  4. 生成 java class payload https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120105957.png-water_print

  5. 执行exp https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120110023.png-water_print

得到padding oracle attack后的cookie

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120110056.png-water_print

:破解时间较长,大概持续100min - 120min左右。

  1. 复制该cookie,重放数据包 https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120110159.png-water_print

  2. 检查执行结果 https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120110222.png-water_print

发现success文件成功被创建,命令可以被执行

参考

https://www.anquanke.com/post/id/192819

https://github.com/jas502n/SHIRO-721

https://github.com/wuppp/shiro_rce_exp