Session反序列化与php原生类应用

当用户首次访问一个服务器,如果该服务器开启了Session(使用Seesion_start()函数开启),服务器将生成一个唯一PHPSESSID,同时创建一个以sess_PHPSESSID命名的文件用于存储会话信息。并在HTTP响应中通过 Set-cookie:PHPSESSID 将PHPSESSID发送给用户。当用户再次访问时Session_start()函数就不会再去分配一个新的PHPSESSID,而是在服务器中去寻找以sess_PHPSESSID命名的文件,将文件保存的序列化信息进行反序列化并读出。

CommonsCollections5

jdk 在 1.8 之后对 AnnotationInvocationHandler 类进行了修复,而CommonsCollections5利用链则是寻找到了替代AnnotationInvocationHandler 的新的可以利用的类。

Commons-Collections2

CC2的利用版本与CC4相同:
CommonsCollections 4.0
JDK 版本暂无限制
需要 javassist(伪条件)

Commons-Collections6

Commons-Collections6是在Commons-Collections1的LazyMap链基础上进行了改进,解决了Commons-Collections1在Java 8u71以后因为sun.reflect.annotation.AnnotationInvocationHandler#readObject 的逻辑发生变化,而无法利用的问题。

Commons-Collections1

Apache Commons Collections 是一个扩展了 Java 标准库里的 Collection 结构的第三方基础库,它提供了很多强有力的数据结构类型并实现了各种集合工具类。作为 Apache 开源项目的重要组件,被广泛运用于各种 Java 应用的开发。
在Commons Collections中实现了一个TransformedMap类,该类是对 Java 标准数据结构类型Map接口的一个扩展。该类可以在一个Map元素加入到集合内时,自动对该元素进行特定的修饰变化,而具体的变换逻辑则由Transformer类定义,TransformerTransformedMap实例化时作为参数传入