漏洞详情
根据相关公告,目前可能受影响的是JDK9及以上版本下的Spring Framework框架低于5.3.18和5.2.20或其衍生框架构建的网站或应用。
目前比较多的POC均是与Tomcat容器的一些操作属性结合起来进行利用,本次测试也是根据该方式进行复现,但需要注意的是其他中间件可能也存在相关的利用。
本文将使用vulhub搭建相关靶机进行本地环境的简单复现,至于测试payload已公开,可自行查找。本次复现主要是通过修改Tomcat容器日志记录配置操作,将日志记录修改为我们指定的jsp文件进行记录,并在通过记录日志的形式往指定的jsp文件写入相关shell语句实现GetShell。
正常访问靶机环境:
写入成功后,然后直接访问shell地址:/tomcatwar.jsp,并直接执行id命令,便可直接执行命令:
假如需要写入新的shell文件,在本次测试中只修改fileDateFormat值便可写入新的文件,主要是因为shell的文件名主要是由prefix+fileDateFormat+suffix进行拼接而成的,而文件路径就是directory进行定义的。
这里需要特别注意的是,在写入shell文件内容时,Tomcat某些版本可能会有安全限制,会对内容中的'<'、'{'等特殊符合会有限制,以及pattern自身会对%进行格式化,所以需要在请求头中写入部分内容,然后通过%{xxx}i引用请求头字段的内容进行拼接,具体可查看AccessLogValue属性的官方文档:https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html,或是https://xz.aliyun.com/t/11129、https://mp.weixin.qq.com/s/G1z7mydl4nc9SxcZjwUQwg这两篇分析文章均有所涉及。
同时需要注意的是,通过修改Tomcat日志记录配置进行GetShell的利用方式对目标系统侵入性比较大,修改了日志记录文件路径可能会导致发生一些不可预知的严重崩溃情况,建议大家谨慎对待,请勿随意测试。
Spring Framework框架官方已发布新版本5.2.20.RELEASE与5.3.18修复此漏洞:https://github.com/spring-projects/spring-framework/releases;
其他防护措施可参考:https://mp.weixin.qq.com/s/8SaIoSEaT3xjoXuOFD23Eg
https://xz.aliyun.com/t/11129
https://mp.weixin.qq.com/s/G1z7mydl4nc9SxcZjwUQwg
https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html
https://mp.weixin.qq.com/s/mGGWr8SR_2Pao7UTiUb2IA
https://mp.weixin.qq.com/s/8SaIoSEaT3xjoXuOFD23Eg
https://github.com/vulhub/vulhub
声明:本文作为个人学习记录使用,请勿用于非法行为,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号与文章作者不为此承担任何责任。
原文始发于微信公众号(信安搬运工):Spring Framework 框架远程代码执行漏洞(CVE-2022-22965)预警与复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论