【shiro】Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437 )

1 是什么?

1.1 shiro框架

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

1.2 Shiro-550反序列化漏洞

  1. 简介:加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
  2. 影响版本:Apache Shiro 1.2.4及以前版本。

2 为什么?

2.1 工作步骤

  1. rememberMe生成过程:序列化→AES加密→Base64编码→生成rememberMe内容。
  2. 服务端接收Cookie值时:检索Cookie中的rememberMe内容→Base64解密→AES解密(加密密钥硬编码)→反序列化(未做处理)。

2.1 漏洞原理

  1. Apache Shiro默认使用了CookieRememberMeManager,其处理Cookie的流程:得到rememberMe的Cookie值→Base64解码→AES解密→反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
  2. 关键因素:AES的加密密钥在Shiro的1.2.4之前版本中使用的是硬编码:kPH+bIxk5D2deZiIxcaaaA==,只要找到密钥后就可以通过构造恶意的序列化对象进行编码,加密,然后作为Cookie加密发送,服务端接收后会解密并触发反序列化漏洞。在1.2.4之后,ASE秘钥就不为默认了,需要获取到Key才可以进行渗透。

3 怎么做?

3.1 环境搭建

  1. 本教程利用vulhub搭建漏洞环境,vulhub的安装过程请参考《CentOS上部署Vulhub靶场》.
  2. 打开终端,使用命令sudo -i切换至root身份。
  3. 找到到vulhub路径后,使用命令
    shiro/CVE-2016-4437进入到本实验漏洞路径。
  4. 使用命令docker-compose up -d启动一个使用了Apache Shiro 1.2.4的Web服务。
    在这里插入图片描述
  5. 在centerOS上代开浏览器,访问127.0.0.1:8080,显示如下则说明环境开启成功。
    在这里插入图片描述
  6. 输入默认的账号密码尝试登录,账号为admin,密码为vulhub,登录成功显示如下。
    在这里插入图片描述

3.2 如何发现

  1. 漏洞特征:Shiro反序列化漏洞存在特征,在返回包的Set-Cookie中存在rememberMe=deleteMe 字段。
  2. 注意:以下每一步操作后记得清除浏览器缓存,保证浏览器状态为初始空白状态。
  3. 在登录页面,存在一个选择框,提供给用户选择是否勾选RememberMe,当我们不勾选时输入默认账号密码,设置代理为BurpSuite并点击登录。
    在这里插入图片描述
  4. 用BurpSuite拦截该请求,发送到repeater模块并点击send,可以看到响应如下,rememberMe的值为deleteMe。
    在这里插入图片描述
  5. 当我们勾选rememberMe时输入默认账号密码,设置代理为BurpSuite并点击登录。
    在这里插入图片描述
  6. 用BurpSuite拦截该请求,发送到repeater模块并点击send,可以看到请求中多了rememberMe字段,同时响应中rememberMe的值也变成一大段。
    在这里插入图片描述
  7. 以上都是使用正确的账号密码登录的情况,再试试使用错误账号密码同时勾选rememberMe的情况,在上述请求中修改账号密码并点击send,响应中rememberMe的值为deleteMe。
    在这里插入图片描述

3.3 如何利用

  1. 按《shiro反序列化漏洞综合利用工具v2.2(下载、安装、使用)》下载并启动工具。
  2. 输入目标地址,注意填写协议http,然后点击爆破秘钥。
    在这里插入图片描述
  3. 爆破后,可以看到检查日志中成功爆出秘钥,并填写到指定秘钥中。
    在这里插入图片描述
  4. 点击爆破利用链及回显,可以看到当前利用链和回显位置适用。
    在这里插入图片描述
  5. 切换功能区至命令执行,输入whoami,可以看到获取的权限为root,由此证明可以实现远程命令执行。
    在这里插入图片描述
  6. 输入cat /etc/passwd,可以查看到文件内容。
    在这里插入图片描述

3.4 如何防御

  1. 升级shiro版本。
  2. 修改秘钥。

4 总结

  1. 本节内容主要介绍shiro反序列化漏洞的原理和工具的利用。
  2. 要加深对漏洞的理解还是需要多研究一下自己编写需要的程序。

参考文献

  1. Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437 )》CSDN文章
  2. Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)》Vulhub教程
  3. Shiro反序列化漏洞利用笔记
  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Shiro反序列化漏洞是近年来Java安全领域的一个重大问题,由于Apache Shiro框架的反序列化机制不够安全且攻击方式广泛,黑客可以通过此漏洞在应用程序中执行任意代码和操作,从而导致数据泄露、系统崩溃等风险。 为了解决这一问题,一些恶意黑客开发了Shiro反序列化漏洞综合利用工具,其主要作用是探测针对Shiro漏洞的攻击点,同时提供自动化攻击功能,即通过模块化的方式实现攻击流程中的各个步骤自动化工具,简化攻击者的工作。 该工具主要包括以下几个模块: 1. Payload生成模块:通过对Shiro反序列化漏洞的利用规律进行分析,在调用对象与类名之间添加有效负载数据,从而在反序列化过程中执行攻击代码。 2. 指南针获取模块:该模块主要用于获取目标应用程序中的Shiro指南针(即Shiro的运行时环境),并识别出漏洞点的位置和类型。 3. AOP织入模块:该模块主要用于AOP自动化处理,将攻击标记织入目标应用程序中的相关类或方法,实现自动化攻击。 4. 反调试模块:该模块主要用于实现对攻击过程的掩盖,尽可能避免被抓获,保证攻击效果。 总的来说,Shiro反序列化漏洞综合利用工具主要是针对Shiro反序列化漏洞的攻击模块,可以快速发现应用程序的漏洞点,同时提供一系列协作模块进行攻击,具有较高的效率和可靠性,是黑客攻击的主要工具之一,需要开发者及时做好漏洞修复和加强安全机制的措施。 ### 回答2: Shiro是一个开源的Java安全框架,提供了诸如身份验证、授权、加密解密等功能。然而,Shiro框架存在一个反序列化漏洞,攻击者可以通过该漏洞执行任意命令,进而获取服务器权限。 针对这个漏洞,黑客社区推出了多种综合利用工具,例如ysoserial、commons-collections等,这些工具利用Shiro框架中反序列化漏洞的特性,构造恶意数据包,传输至目标服务器执行任意命令。 在使用这些工具时,黑客需要进行一系列步骤。首先,需要获取Shiro框架的加密密钥,以便构造有效的恶意数据包。其次,需要利用工具生成payload,常用的情况是利用ysoserial生成Exploit序列化对象,最后发送给目标服务器触发漏洞执行恶意代码。 这些工具很容易从Github和Darkweb等地方获取,使用工具的成本很低,攻击者只需要稍微了解一些Shiro框架和Java相关知识,便可轻松进行攻击。 因此,服务端必须及时修复Shiro框架的反序列化漏洞,升级到最新版本,避免黑客通过利用漏洞入侵服务器,造成不可估量的损失。此外,数据加密、权限控制等措施也非常重要,可以防止黑客获取加密密钥,降低服务器被攻击的风险。 ### 回答3: Shiro反序列化漏洞综合利用工具是一款能够快速检测和利用Shiro框架反序列化漏洞工具,可以自动化完成攻击流程,方便黑客进行攻击。该工具主要是基于shiro-poc脚本开发而来,可以自动化完成Shiro认证和授权的绕过,进而获取目标系统敏感信息或者直接取得系统控制权。 利用Shiro反序列化漏洞综合利用工具通常需要进行如下流程:首先,收集目标系统的相关信息,包括Shiro框架版本和应用程序暴露的Cookie等信息。其次,通过漏洞检测工具对目标系统进行漏洞扫描,确认是否存在Shiro反序列化漏洞。然后,根据目标系统的情况选择对应的攻击方式,例如通过利用恶意序列化数据绕过Shiro认证和授权机制,获取敏感信息或控制目标系统。最后,保护自己的系统,使用安全补丁或其他措施来防止Shiro反序列化漏洞被攻击者利用。 总之,Shiro反序列化漏洞综合利用工具是一个十分强大的利用工具,可以使攻击者轻松利用Shiro反序列化漏洞对目标系统进行攻击和渗透,对于防范此类攻击,我们必须做好系统漏洞修复和相关防护措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值