0x01 前言
今天就来说说最近比较火的这个Spring-RCE漏洞,但是今个这文章的标题叫做Spring-RCE的前世今生,那么就得扯扯他的祖宗了CVE-2010-1622,这个2010年就出现的漏洞为啥在2022的今天卷土重来?为啥CVE-2022-22965要在java9+才能实现?在今天这篇文章中就给大家带来答案。
0X02 CVE-2010-1622
这个漏洞出现在2010年可以进行拒绝服务,通用可以进行远程命令执行Spring很早就发布了补丁修复了此漏洞,在此分析为CVE-2022-22965做铺垫。
2.1 关于JavaBean参数绑定
Spring实现了一种操作,通过通过定义java bean对象解析用户的请求实现用户提交的参数和类中的参数进行绑定,进行赋值。
在这里,我们创建一个java bean类:
我们这个User类中的私有属性是name,在testa包中,name属性通过
public void setName可以被外部访问,拥有一个名为getName()的无参构造方法。

现在创建一个Contorller与User类进行绑定:

通过Spring的@RequsetMapping解析用户请求中的“/login”
此时如果用户提交如下请求:
http://127.0.0.1/login?name=666
那么User

本文详细分析了Spring远程命令执行漏洞的历史,从2010年的CVE-2010-1622到2022年的CVE-2022-22965。通过JavaBean参数绑定,解释了如何利用这些漏洞进行攻击,并探讨了补丁和漏洞复现过程。文章强调了CVE-2022-22965在Java 9+版本中的触发条件,以及它如何在Tomcat容器中生效。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



