Shiro remeberMe反序列化漏洞复现(Shiro-550)

Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。在Apache Shiro编号为550的 issue 中爆出严重的 Java 反序列化漏洞。

漏洞原理:

以后研究透彻了再写 暂时只写利用:D

影响版本:

Apache Shiro < 1.2.4

特征判断:

返回包中包含rememberMe=deleteMe字段

如图:

1.png

漏洞利用:

1,环境搭建
获取docker镜像
docker pull medicean/vulapps:s_shiro_1
启动docker镜像:
docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1
2,利用工具

https://github.com/feihong-cs/ShiroExploit

如图:

2.png

3,漏洞利用

图形化界面傻瓜式操作 :)

添加需要检测的网址,事实上响应包里面存在rememberMe=deleteMe字段我们都可以进行检测一下,这里不仅是Shiro版本小于1.2.4的,有部分Shiro升级后还是存在反序列化漏洞,详情介绍:https://mp.weixin.qq.com/s/NRx-rDBEFEbZYrfnRw2iDw

3.png

直接下一步趴,相当于是默认选项了,在ShiroExploit工具的github介绍上,对使用 ceye.io 进行漏洞检测的解释为:

  • 可以不进行任何配置,配置文件中已经预置了 CEYE 域名和对应的 Token,当然也可以对其进行修改。

  • 程序会首先使用 URLDNS 筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload

  • 缺点:程序会使用 API:http://api.ceye.io/v1/records?token=a78a1cb49d91fe09e01876078d1868b2&type=dns&filter=[UUID] 查询检测结果,这个 API 有时候会无法正常访问,导致在这种方式下无法找到 Key 或者有效的 Gadget

4.png

这里检查是否存在默认的key,因为很多代码都是抄来抄去的,所以很多应用的key值是相同的,Shiro key 100,详情在:https://mp.weixin.qq.com/s/sclSe2hWfhv8RZvQCuI8LA

日常不建议全部加载尝试,如遇到常用key跑不出来的情况可尝试全部跑一遍。

5.png

可以看到找到匹配的key值,同时当反弹shell这些按钮能够选择和输出的话,证明反序列化漏洞是存在的,接下来就是反弹shell主机上线了,相信大师傅们比我更熟悉,冲鸭!

 

参考链接:

 

posted @ 2020-07-31 21:46  春告鳥  阅读(1705)  评论(0编辑  收藏  举报