Spring·Framework·远程命令执行漏洞(CVE-2022-22965)
漏洞描述:
Spring core是Spring系列产品中用来负责发现、创建并处理bean之间的关系的一个工具包,是一个包含Spring框架基本的核心工具包,Spring其他组件都要使用到这个包。
Spring·框架以及衍生的框架中,JDK·9.0及以上版本会受到影响。使用旧JDK版本的产品不受影响。建议存在该漏洞的企业在防火墙处阻止带有特殊字符串的请求,以免受到该漏洞的攻击。
漏洞详情:
一、漏洞详情
(1)漏洞名称:Spring框架JND注入漏洞
( 2 ) CVE编号:cve-2022-22965
( 3)漏洞等级:高危
(4)漏洞描述:Spring框架JND注入漏洞
( 5)影响版本:All
( 6 )EXP或POC链接∶poc在GitHub
(7)排查方法:
1.如果业务系统项目以war包形式部署,按照如下的步骤进行判断。
1解压war包:将war文件的后级修改成zip,解压zip文件。
2)在解压缩目录下搜索是否存在spring-beans-*jar格式的jar文件(例如spring-beans-5.3.16jar),如存在则说明业务系统使用了Spring框架进行开发。
3如果spring-beans-*jia文件不存在,则在解压缩目录下搜索CachedintrospectionResults.cdass文件是否存在,如存在则说明业务系统使用了Spring框架进行开发。
2.如果业务系统项目以jar包形式直接独立运行,按照如下的步骤进行判断。
1解压jar包:将jar文件的后缀修改成zip,解压zip文件。
2)在解压缩目录下搜索是否存在spring-beans-jar格式的iar文件(例如spring-beans-5.3.16jar),如存在则说明业务系统使用了Spring框架进行开发。
3如果spring-beans-*jiar文件不存在,则在解压缩目录下搜索CachedntrospectionResut.cass文件是否存在,如存在则说明业务系统使用了Spring框架进行开发。
( 8)修复方案:
官方暂未发布新版本:
1,WAF防护∶对"class.*Clss.classClass.*等字符串的规则过滤,并在部署过滤规则后,对业务运行情况进行测试,避免产生额外影响。
2,在应用中全局搜索@tniEinder注解,看看方法体内是否调用datasinderet irllwedFre es方法,如果发现此代码片段的引入则在原来的黑名单中,添加(ces C2s "cs ".sts ”攀,注如果此代蹄片段使用较多,需要每个地方都追加)
3,在应用系统的项目包下新建以下全局类,并保证这个类被$Sping 加u戮到推荐在Contolle 所在的包史添加),完成类添加后,震对项目进行重新编泽打包和功能验证测试,并重新发布项目
漏洞影响范围:
- Spring Framework < 5.3.18
- Spring Framework < 5.2.20
漏洞复现:
环境来源:https://vulfocus.cn
背景
漏洞靶场是目前每个安全人员以及想学习信息安全的人必备的东西,但目前商业化产品居多,还有一些类似
dvwa、
sqli-labs这类的开源项目,但是漏洞环境比较固定,使用完一次后就失去其作用。搭建的成本过高,每次启动的流程会比较繁琐,甚至很多场景是不满足的,之前关于漏洞环境镜像使用多的是vulhub,但是作为企业,高校等以及相关的培训,单纯的漏洞环境不一定能满足使用的需求,所以我们基于当下的一些靶场项目做出了小小的改进来符合我们的一些需求,比如增加flag的形式,来满足一些考核与验证的需求,可以对我们内部人员能力进行考核,于是
Vulfocus 就诞生了。
认识 Vulfocus
因为 Vulfocus 一个漏洞集成平台,所以可以无限向里添加漏洞环境没有限制,前提是你的内存足够大。因为漏洞环境是docker镜像的原因每次重新启动漏洞环境都会还原,不用出现你会对环境造成破坏下次无法启动的现象。
Vulfocus 的 docker 仓库 https://hub.docker.com/u/vulfocus
1.通过该漏洞poc得到一个get的命令执行点
2.查看当前用户
3.通过find命令找到flag
远程命令执行危害:
1、继承 Web·服务器程序权限,去执行系统命令
2、继承Web·服务器权限,读取文件
3、反弹 Shell
4、控制整个网站
5、控制整个服务器