漏洞描述
作为目前全球最受欢迎的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 所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。
与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。
本文作者:XCTF
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/176253.html