Apache shiro反序列化漏洞
1.vulhub搭建环境
docker-compose up -d 启动环境
登录页面,点击记住我然后登录抓包直接在请求包或者响应包内看有没有 rememberMe=deleteMe
如果有直接上工具ShiroExploit输入目标地址进行检测,检测后可以直接执行命令,也可反弹shell,被反弹主机使用nc -nvlp 888 连接反弹shell(前提互相可以ping通)
1、漏洞原理
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64编码再进行AES解密再反序列化,而用户传入的值可以被用户控制,就导致了反序列化RCE漏洞。
漏洞利用的过程如下:
命令-->序列化-->AES加密-->base64编码-->RememberMe Cookie值-->base64解码-->AES解密-->反序列化-->命令
在整个漏洞利用的过程中,重点在于AES加密的密钥,构造Payload的重点在于猜测AES加密使用的密钥。
2、影响的版本
Apache Shiro<1.2.4
3、特征判断
返回包中set-cookie中包含RememberMe=deleteMe字段
4.解决
由于key为固定所以cookie可以被解密,key改为随机key就不会出现这种问题.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】