前言
最近spring爆出了一个能够配合tomcat getshell的破绽,spring4shell, 在查看网上一些文章对此破绽的剖析时,有师傅说这个破绽是对cve-2010-1622的绕过。所以本篇文章就带大家复现下这个古老的破绽,下篇文章会剖析下CVE-2022-22965破绽的应用原理。
cve-2010-1622 破绽影响版本
spring版本:
3.0.0 to 3.0.2
2.5.0 to 2.5.6.SEC01 (community releases)
2.5.0 to 2.5.7 (subscription customers)
tomcat < 6.0.28
spring 运用了表单标签功用
前置学问
java Class 对象
在java中有两种对象,一种是经过new()
出来的对象,另外一种是Class对象。在Java中用来表示运转时类型信息的对应类就是Class类,Class类也是一个实真实在的类,存在于JDK的java.lang包中。Class类被创立后的对象就是Class对象,留意,Class对象表示的是本人手动编写类的类型信息,比方创立一个Shapes类,那么,JVM就会创立一个Shapes对应Class类的Class对象,该Class对象保管了Shapes类相关的类型信息。实践上在Java中每个类都有一个Class对象,每当我们编写并且编译一个新创立的类就会产生一个对应Class对象并且这个Class对象会被保管在同名.class文件里(编译后的字节码文件保管的就是Class对象)。
Class对象具有下面这几个特性:
- Class类也是类的一种,与class关键字是不一样的。
- 手动编写的类被编译后会产生一个Class对象,其表示的是创立的类的类型信息,而且这个Class对象保管在同名.class的文件中(字节码文件),比方创立一个Shapes类,编译Shapes类后就会创立其包含Shapes类相关类型信息的Class对象,并保管在Shapes.class字节码文件中。
- 每个经过关键字class标识的类,在内存中有且只要一个与之对应的Class对象来描绘其类型信息,无论创立几个实例对象,其根据的都是用一个Class对象。
- Class类只存私有结构函数,因而对应Class对象只能有JVM创立和加载
- Class类的对象作用是运转时提供或取得某个对象的类型信息,这点关于反射技术很重要。
Class对象的获取
Class对象能够由以下几种办法获取:
- 类名.class
- Class.forName()
- getClass()
package com.test; public class out { public static void main(String[] args) throws ClassNotFoundException { Class<Class> t0 = Class.class; Class<?> t1 = t0.getClass(); Class<?> t2 = Class.forName("java.lang.Class"); System.out.println(t0); System.out.println(t1); System.out.println(t2); } }
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
© 版权声明
本站网络名称:
孤勇者社区
本站永久网址:
https://www.gyzsq.com
网站侵权说明:
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ324470778删除处理。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
喜欢就支持一下吧
相关推荐
评论 共1条
![头像](/wp-content/themes/zibll/img/avatar-default.png)
欢迎您留下宝贵的见解!
- 最新
- 最热
只看作者