目录
〇、环境说明:
Web容器:Tomcat 8.5.77
java运行环境: jdk9以上
SpringBoot版本:2.6.5
打包方式:war(为什么要war包?如官网下图说明)
一、新建SpringBoot项目
1.用快捷键Ctrl+Shift+p调出命令面板,输入spring init,选择如图第三项
2.按提示选择版本2.66 --> 选择jvaa --> 输入包名 com.example,后回车
3.按提示输入项目名rce,回车,再选择war打包方式
4.选择java版本11
5.选择依赖spring web
6.各项选择完成后回车继续
7.选择项目文件保存路径
8.提示项目创建成功
二、添加修改项目文件并打包war文件
(一)打开rce文件夹,修改pom.xml,将springboot版本改为2.6.5
保存同步后,可看到相关spring依赖已变为5.3.17(存在Vulnerability)
(二)新建实体类User.java
快捷键 Shift+Alt+o 可快速导入包
package com.example.rce;
public class User {
private String userName;
private String password;
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
(三)新建控制器类GreetingController.java
package com.example.rce;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
@RequestMapping("/")
public String greeting(User user) {
return "Hello World!";
}
}
(四)打包war文件
打包完成,如下图
三、部署到TOMCAT运行
(一)下载TOMCAT
1.地址:https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.77/bin/
2.解压tomcat,并删除webapps\ROOT文件夹
3.配置控制台中文字符集
(二)将项目target目录下的war包复制到webapp下并改名为ROOT.war
(三)启动tomcat
1.执行startup.bat
2.启动成功
3.测试访问http://localhost:8080/
4.启动完成生成的ROOT文件夹内容
四、Vulnerability利用
1.请自行搜索exp,测试发现漏洞
2.网页浏览利用,在url中给cmd传参calc,计算器被执行
五、Spring官方修补建议
目前Tomcat和Sping均已发布版本更新,详见地址:https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
六、总结
确实是没有绝对安全的系统,安全是动态的,必须全流程关注业界安全动态!及时修补漏洞。