-
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...
从零开始
希望你有破釜沉舟的勇气.