Spring Framework 爆出远程代码执行漏洞!
这个漏洞(CVE-2022-22965)是在2022年3月31日,Spring官网发布的,离现在已经一个多月了,可能还有很多开发者没有了解过。如果在JDK9环境下,攻击者可以通过利用SpringMVC的参数绑定功能,实现对目标程序写入恶意代码来达到入侵的目的。
漏洞触发条件
- 使用jdk9+版本
- 使用Spring-webmvc并且使用了参数绑定功能(一般使用了spring-webmvc肯定用到了参数绑定)
- 使用war包部署在servlet 容器中如apache tomcat
漏洞复现
这个漏洞触发原因之一就是spring的参数绑定功能,对于企业级java开发程序员来说,spring的参数绑定再熟悉不过了。参数绑定使用在controller方法参数上,参数绑定功能被用来解析http请求参数(查询参数或表单数据)进而填充到对象中。接下来我们通过一个例子来复现这个漏洞
@RestController
public class DemoController {
@GetMapping("/test")
public String test(User user) {
return "hello "+user.getUsername();
}
}
public class User {
private String username;
public String getUsername() {
return username;
}
public void