0%

前言

cc5从yso中的代码看,修改了入口点
入口类是 BadAttributeValueExpException 的 readObject() 方法

1
2
3
BadAttributeValueExpException.readObject()
TiedMapEntry.toString()
LazyMap.get()

环境
CommonsCollections 3.1 - 3.2.1

阅读全文 »

前言

CC7 的链子也是和 CC5 类似,后半条链子也是 LazyMap.get() 的这条链子。

1
2
3
4
java.util.Hashtable.readObject
java.util.Hashtable.reconstitutionPut
org.apache.commons.collections.map.AbstractMapDecorator.equals
java.util.AbstractMap.equals

环境
CommonsCollections 3.1 - 3.2.1

阅读全文 »

环境

  • JDK8u65
  • openJDK 8u65
  • Maven 3.6.3(其余版本可以先试试,不行再降版本)
  • Commons-Collections 4.0
    (除 4.0 的其他版本去掉了 InvokerTransformer 的 Serializable 继承,导致无法序列化。)
阅读全文 »

前言

原本的 CC1 链与 CC6 链是通过 Runtime.exec() 进行命令执行的。
而CC3 链这条链子,是使用 类加载机制 来执行恶意代码的。
可以理解为cc1 cc6是命令执行;而cc3是代码执行。

环境

  • jdk8u65
  • Commons-Collections 3.2.1

TemplatesImpl解析

前提知识:利用 ClassLoader#defineClass 直接加载字节码。
忘记的了同学,可以去看,java反序列化-基础中的 类加载流程(调试) 部分。

ClassLoader.loadClass() --> ClassLoader.findClass() --> ClassLoader.defineClass()

阅读全文 »

cc6的攻击链后面部分(尾部exec方法)也和之前cc1的一样。
特点: CC6 链,可以不受 jdk 版本制约。

LayzMap的get()–>this.factory.transformer()–>ChainedTransformer.transform()–>InvokerTransformer.transform()–>runtime.exec

阅读全文 »

上一篇我们分析的是TransformedMap的利用链,是此链条传入国内后,国内研究员的分析。
这次我们分析正版yso中的cc1 LazyMap 利用链。LazyMap相比之前的会更加麻烦一些,同时会用到动态代理

阅读全文 »

暂时两个部分

  • 一、IO流
  • 二、runtime解决弹shell

一、IO流

IO是指 Input/Output,即输入和输出。以内存为中心:
代码是在内存中运行的,数据也必须读到内存,最终的表示方式无非是 byte数 组,字符串等,都必须存放在内存里。

阅读全文 »

1、Apache Commons Collections包和简介

Apache Commons是Apache开源的Java通用类项目在Java中项目中被广泛的使用,Apache Commons当中有一个组件叫做Apache Commons Collections,主要封装了Java的Collection(集合)相关类对象。

以下是Collections的包结构和简单介绍,如果你想了解更多的各个包下的接口和实现,请参考Apache Commons Collections 3.2.2 API文档

  • org.apache.commons.collections – CommonsCollections自定义的一组公用的接口和工具类
  • org.apache.commons.collections.bag – 实现Bag接口的一组类
  • org.apache.commons.collections.bidimap – 实现BidiMap系列接口的一组类
  • org.apache.commons.collections.buffer – 实现Buffer接口的一组类
阅读全文 »

jdk的安装

由于我们测试时要用到多个jdk。
所以直接虚拟机安装多个jdk,将jdk目录拷贝到物理机中。在使用时进行切换。

  • jdk1.7.0_21
  • jdk1.7.0_51
  • jdk1.8.0_65
  • jdk1.8.0_66
  • jdk1.8.0_71
  • jdk1.8.0_73
  • jdk1.8.0_121
  • jdk1.8.0_141
  • jdk1.8.0_271
  • jdk11_28
阅读全文 »