• XMLDecoder反序列化

    XMLEncoder和XMLDecoderXMLEncoder和XMLDecoder是Java中自带的类。两者的作用分别是将对象转换为XML格式,或者将XML格式的字符串反序列化为对象的形式。 举例如下: 创建User类,类中必须要有⽆参数构造⽅法。...
  • CommonsCollections5和CommonsCollections7

    CommonsCollections5还是从ysoserial中的代码入手,可以发现代码中引入了新类:BadAttributeValueExpException,且很明显该类即反序列化所调用的类。 12345678910111213141516171...
  • CommonsCollections2和CommonsCollections4

    CommonsCollections2和CommonsCollections4具有一个共同的特征:使用commons-collections4而非commons-collections commons-collections4在2015年底commo...
  • TemplatesImpl和CommonsCollections3

    What is CommonsCollections3?在字节码的动态加载章节,可以通过TemplatesImpl#newTransformer()来加载字节码。 那么在实际的攻击中,该如何调用TemplatesImpl#newTransformer...
  • Java字节码的动态加载

    什么是Java字节码?Java作为一门跨平台开发语言。其跨平台的特性与自身独特的JVM(Java Virtual Machine)机制相关。而字节码,便是一种可以被Java虚拟器加载和执行的指令。 使用javac命令可以将.java文件编译为字节码文...
  • CommonsCollections6链

    Why CommonsCollections6?CC1的条件:Apache Commons Collections 3.1-3.2.1&&JDK<8u71。CC6便是为了解决JDK>=8u71的情况 在JDK>=8u...
  • Java代理模式

    代理模式代理模式是Java常见的设计模式之一。通常情况下,我们通过new来获取一个对象的类实例,然后通过调用其方法来获取相应的服务。而在代理模式中,是通过创建代理类(proxy)的方式来调用服务。 代理类会有一个委托类对象。代理类不会自己实现服务,而...
  • CommonsCollections1链

    CC1的影响范围为Apache Commons Collections 3.1至3.2.1,需要提前引入对应版本的jar包。 CommonsCollections1成因这里从p牛简化过的代码来看CC1的成因 123456789101112131415...
  • Java反序列化与URLDNS

    序列化与反序列化对象流:对象流指的是可以直接把一个对象以流的形式传输给其他的介质,比如硬盘 序列化:一个对象以流的形式进行传输,叫做序列化。该对象所对应的类,必须实现Serializable接口 反序列化:将对象流还原成对象的过程叫做反序列化 如下代...
  • Java反射

    反射:将类的各个组成部分封装为其他对象。 Java代码在计算机中经历了三个阶段:源代码阶段->Class对象阶段->Runtime运行时阶段。 源代码阶段:在编辑器中写的便是源代码。以.java做后缀。 使用javac命令可以将.ja...