Shiro remeberMe反序列化漏洞复现(Shiro-550)
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。在Apache Shiro编号为550的 issue 中爆出严重的 Java 反序列化漏洞。
漏洞原理:
以后研究透彻了再写 暂时只写利用:D
影响版本:
Apache Shiro < 1.2.4
特征判断:
返回包中包含rememberMe=deleteMe字段
如图:
漏洞利用:
1,环境搭建
获取docker镜像 docker pull medicean/vulapps:s_shiro_1 启动docker镜像: docker run -d -p 8080:8080 medicean/vulapps:s_shiro_1
2,利用工具
如图:
3,漏洞利用
图形化界面傻瓜式操作 :)
添加需要检测的网址,事实上响应包里面存在rememberMe=deleteMe字段我们都可以进行检测一下,这里不仅是Shiro版本小于1.2.4的,有部分Shiro升级后还是存在反序列化漏洞,详情介绍:https://mp.weixin.qq.com/s/NRx-rDBEFEbZYrfnRw2iDw
直接下一步趴,相当于是默认选项了,在ShiroExploit工具的github介绍上,对使用 ceye.io 进行漏洞检测
的解释为:
程序会首先使用
URLDNS
筛选出唯一 Key,然后依次调用各个 Gadget 生成 Payload缺点:程序会使用 API:http://api.ceye.io/v1/records?token=a78a1cb49d91fe09e01876078d1868b2&type=dns&filter=[UUID] 查询检测结果,这个 API 有时候会无法正常访问,导致在这种方式下无法找到 Key 或者有效的 Gadget
这里检查是否存在默认的key,因为很多代码都是抄来抄去的,所以很多应用的key值是相同的,Shiro key 100,详情在:https://mp.weixin.qq.com/s/sclSe2hWfhv8RZvQCuI8LA
日常不建议全部加载尝试,如遇到常用key跑不出来的情况可尝试全部跑一遍。
可以看到找到匹配的key值,同时当反弹shell这些按钮能够选择和输出的话,证明反序列化漏洞是存在的,接下来就是反弹shell主机上线了,相信大师傅们比我更熟悉,冲鸭!
参考链接: