Apache Shiro 1.2.4反序列化漏洞
前几天复现了一下墨者平台的shiro靶场,本篇文章用的是工具检测的~~
1、漏洞简述
Shiro默认使用了CookieRememberMeManager, 其处理cookie的流程是: 得到rememberMe的cookie值–>Base64解码–>AES解密–>反序列化.然而AES的密钥是硬编码的, 密钥泄漏的根本原因是开发人员在开发过程中部分代码直接使用了网上的一些开源的项目代码,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
2、影响版本
Apache Shiro <= 1.2.4
3、Shiro框架识别
(1)请求包的cookie中存在rememberMe字段。
(2)返回包中存在set-Cookie:remeberMe=deleteMe。
(3)请求包中存在rememberMe=x时,响应包中存在rememberMe=deleteMe。(有时候服务器不会主动返回remeberMe=deleteMe,直接发包即可,将Cookie内容改为remember Me=1,若相应包有rememberMe=deleteMe,则基本可以确定⽹站是apache shiro搭建的。)
(4) URL中有shiro字样
将cookie内容改为rememberMe=1情况:

4.选择一个账户登录,勾选remember me

5.从请求的返回包判断出使用了shiro

6.1利用burp插件得到密钥
burp插件下载:https://github.com/pmiaowu/BurpShiroPassiveScan/releases/tag/BurpShiroPassiveScan-2.0.0
这个插件是被动式检测,会对burp获取到的请求自动做检测。若存在,有几种查看方式。
方式一:ShiroScan中可直接查看信息(这种方式最快捷)

方式二:到Extender——ShiroScan的Output中查看日志

方式三:在Target——Site map——找到对应目标——问题中可以看到信息

6.2利用shiro工具检测
放入url,点击爆破密钥,存在密钥,得到密钥:

然后点击爆破利用链及回显,发现构造链即可进行功能利用。
7.然后命令执行找到一个key.txt
1 | ls / |

8.查看key.txt,得到flag
1 | cat /key.txt |
