随笔分类 - java反序列化
摘要:从 IDEA 断点分析 RMI 通信原理 1. 流程分析总览 首先 RMI 有三部分: ·RMI Registry ·RMI Server ·RMI Client 关于流程图,放在文件里面了 2. 服务注册 ① 远程对象创建 RMIServer public class RMIServer { pu
阅读全文
摘要:urldns 分析 这条链的目的是ping一个地址 最后的地方是在InetAddress.getByName(host),然后在URLStreamHandler的getHostAddress里调用了他 protected synchronized InetAddress getHostAddress
阅读全文
摘要:CommonsBeanUtils 基础 先说说 JavaBean 的这个概念 比如Baby是一个最简单的JavaBean类 public class Baby { private String name = "gbz"; public String getName(){ return name; }
阅读全文
摘要:CC5 第一步 分析流程 BadAttributeValueExpException的readObject是入口,然后我们在readobject里面看到tostring private void readObject(ObjectInputStream ois) throws IOException
阅读全文
摘要:cc2 cc2其实就是cc3不用cc1结尾的方法,然后用cc4的结尾的方法来构造的 第一步 把cc3前半部分拿过来 TemplatesImpl templates = new TemplatesImpl(); Class tc = TemplatesImpl.class; Field name =
阅读全文
摘要:CC4 第一步:分析链 在TransformingComparator这个类中的compare()方法调用了 transform() 方法。而 compare() 这个方法也是我们比较喜欢的这种,因为它非常常见。 public int compare(final I obj1, final I ob
阅读全文
摘要:CC3 CC3 链同之前我们讲的 CC1 链与 CC6 链的区别之处是非常大的。原本的 CC1 链与 CC6 链是通过 Runtime.exec() 进行命令执行的。而很多时候服务器的代码当中的黑名单会选择禁用 Runtime。 而 CC3 链这里呢,则是通过动态加载类加载机制来实现自动执行恶意类代
阅读全文
摘要:TiedMapEntry 第一步 与cc1一样前面执行代码部分不变 Transformer[] transformers = { new ConstantTransformer(Runtime.class), new InvokerTransformer("getMethod", new Class
阅读全文
摘要:LazyMap 第一步 lazymap源代码 public class LazyMap extends AbstractMapDecorator implements Map, Serializable { private static final long serialVersionUID = 7
阅读全文
摘要:危险方法:exec 第一步 Runtime.getRuntime().exec("calc"); InvokerTransform.transform 第二步 Class c = Runtime.class; Object runtime = Runtime.getRuntime(); Method
阅读全文

浙公网安备 33010602011771号