漏洞描述

在这里插入图片描述
作为目前全球最受欢迎的Java轻量级J2EE应用程序开源框架,Spring允许开发人员专注于业务逻辑,简化Java企业级应用的开发周期。

Spring Framework存在远程代码执行漏洞(CVE-2022-22965、CNVD-2022-23942),由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。

影响版本

Spring Framework 5.3.X < 5.3.18
Spring Framework 5.2.X < 5.2.2
运行环境为JDK9及以上的版本

漏洞复现

构建网络拓扑
在这里插入图片描述
本场景节选自受攻击的某企业网络环境,环境内包含Web站点,内网服务区,办公区,核心内网区。通过Spring Framework RCE漏洞拿下最外层的Web站点,获取内网主机敏感信息,再利用代理工具构建隧道,打通内网。针对不同主机存在的不同漏洞进行逐一击破,最终拿下整个内网,达到最终目的。

渗透过程

阶段一:DMZ区渗透测试任务
-任务1:目标网站端口扫描任务
-任务2:spring Core漏洞利用

阶段二:内网服务区渗透测试任务
-任务1:搭建隧道连接内网任务
-任务2:渗透OA服务器
-任务3:渗透wiki服务器
-任务4:NFS未授权获取主机权限

阶段三:内网域渗透
-任务1:向日葵 RCE漏洞利用
-任务2:域内信息收集
-任务3:获取域服务账户
-任务4:基于资源的约束委派利用
-任务5:横向移动到子域域控
-任务6:SIDHistory版跨域黄金票据利用

今天我们就重点带大家了解一下赛宁靶场中的Spring Framework RCE漏洞利用,事不宜迟,现在就开始吧!

使用浏览器进行访问模拟目标 http://10.108.3.208:8080
在这里插入图片描述
通过工具进行抓包,写入webshell
在这里插入图片描述
用webshell管理工具连接,执行命令
在这里插入图片描述
在这里插入图片描述
成功执行命令。

修复建议

官方修复建议-
目前,Spring官方已经在5.2.20,5.3.18版本修复上述漏洞,用户请及时升级到安全版本。
https://github.com/spring-projects/spring-framework/tags

缓解措施

赛宁网安提醒您:若不便对应用进行升级操作,请及时配置相应缓解措施,以免遭受攻击。

1.使用WAF缓解

用户请根据实际部署业务的流量情况,在WAF或其他网络防护设备上实现对"classLoader.",“class.module.",“class.”,“Class.”,".class.",".Class.", 等字符串的规则过滤,请注意其中流量特征 "class.module.” 对大小写不敏感。用户注意在部署规则后,对业务允许情况进行测试,避免产生额外影响。

2.其他临时缓解措施

全局搜索 @InitBinder注解,判断方法体内是否有dataBinder.setDisallowedFields方法,如果有使用则在原来的黑名单中添加:{“class.”,“Class.”,".class.",".Class."} (注:如果此代码片段使用较多,需要每个地方都追加)

在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。
在这里插入图片描述
与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐