Java安全之Commons Collections6分析】的更多相关文章

Java安全之Commons Collections6分析 0x00 前言 其实在分析的几条链中都大致相同,都是基于前面一些链的变形,在本文的CC6链中,就和前面的有点小小的区别.在CC6链中也和CC5的利用链类似,但是CC6链中使用的是HashSet去触发LazyMap的get方法.而在CC5中使用的是BadAttributeValueExpException. 0x01 POC分析 这里还是去简化一下POC代码,因为ysoserial做了很多优化和封装.所以在第一次看该代码的时候,虽然也能看…
Java安全之Commons Collections1分析(二) 0x00 前言 续上篇文,继续调试cc链.在上篇文章调试的cc链其实并不是一个完整的链.只是使用了几个方法的的互相调用弹出一个计算器. Java安全之Commons Collections1分析(一) 下面来贴出他的完整的一个调用链 Gadget chain: ObjectInputStream.readObject() AnnotationInvocationHandler.readObject() Map(Proxy).ent…
Java安全之Commons Collections1分析(一) 0x00 前言 在CC链中,其实具体执行过程还是比较复杂的.建议调试前先将一些前置知识的基础给看一遍. Java安全之Commons Collections1分析前置知识 0x01 CC链分析 这是一段poc代码,执行完成后会弹出一个计算器. import org.apache.commons.collections.*; import org.apache.commons.collections.functors.Chained…
Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache Commons Collections是Java中应用广泛的一个库,包括Weblogic.JBoss.WebSphere.Jenkins等知名大型Java应用都使用了这个库. 0x01 前置知识 这里先来看一段网上找的,poc代码 import org.apache.commons.collectio…
Java安全之Commons Collections1分析(三) 0x00 前言 继续来分析cc链,用了前面几篇文章来铺垫了一些知识.在上篇文章里,其实是硬看代码,并没有去调试.因为一直找不到JDK的低版本. 全靠脑子去记传参内容尝试理解.后面的其实就简单多了,在上篇文章的基础上再去做一个分析. ​ Java安全之URLDNS链 Java安全之Commons Collections1分析前置知识 Java安全之Commons Collections1分析(一) Java安全之Commons Co…
Java安全之Commons Collections3分析 文章首发:Java安全之Commons Collections3分析 0x00 前言 在学习完成前面的CC1链和CC2链后,其实再来看CC3链会比较轻松.CC1的利用链是 Map(Proxy).entrySet()触发AnnotationInvocationHandler.invoke(),而CC2链的利用链是通过InvokerTransformer.transform()调用newTransformer触发RCE.这里就不说这么详细感…
Java安全之Commons Collections2分析 首发:Java安全之Commons Collections2分析 0x00 前言 前面分析了CC1的利用链,但是发现在CC1的利用链中是有版本的限制的.在JDK1.8 8u71版本以后,对AnnotationInvocationHandler的readobject进行了改写.导致高版本中利用链无法使用. 这就有了其他的利用链,在CC2链里面并不是使用 AnnotationInvocationHandler来构造,而是使用 ​ javas…
Java安全之Commons Collections5分析 文章首发:Java安全之Commons Collections5分析 0x00 前言 在后面的几条CC链中,如果和前面的链构造都是基本一样的话,就不细讲了,参考一下前面的几篇文. 在CC5链中ysoserial给出的提示是需要JDK1.8并且SecurityManager需要是关闭的.先来介绍一下SecurityManager是干嘛的.SecurityManager也就是java的安全管理器,当运行未知的Java程序的时候,该程序可能有…
Java安全之Commons Collections7分析 0x00 前言 本文讲解的该链是原生ysoserial中的最后一条CC链,但是实际上并不是的.在后来随着后面各位大佬们挖掘利用链,CC8,9,10的链诞生,也被内置到ysoserial里面.在该链中其实和CC6也是类似,但是CC7利用链中是使用Hashtable作为反序列化的入口点. 0x01 POC分析 package com.test; import org.apache.commons.collections.Transforme…
ref:https://mp.weixin.qq.com/s?__biz=MzIzMzgxOTQ5NA==&mid=2247484200&idx=1&sn=8f3201f44e6374d65589d00d91f7148e readme:其实所有的反序列化漏洞都是因为在反序列化过程中,执行函数存在文件读写或者命令执行等情况. 3.2.2版本之前的Apache-CommonsCollections存在该漏洞. Java安全之反序列化漏洞分析 原创 Java面试那些事儿 2017-10-…
Java安全之Weblogic 2016-0638分析 文章首发先知:Java安全之Weblogic 2016-0638分析 0x00 前言 续上篇文的初探weblogic的T3协议漏洞,再谈CVE-2016-0638, CVE-2016-0638是基于 CVE-2015-4852漏洞的一个绕过. Java安全之初探weblogic T3协议漏洞 0x01 环境搭建 补丁环境搭建 这里采用上次的weblogic环境,但是在这里还需要打一个补丁包,来修复 CVE-2015-4852漏洞后,对该漏洞…
Java 安全之Weblogic 2017-3248分析 0x00 前言 在开头先来谈谈前面的绕过方式,前面的绕过方式分别使用了streamMessageImpl 和MarshalledObject对gadgets的对象进行封装起来.其实这本质上算是同一个方式,只是利用了不同的类对他进行封装,达成绕过效果. 但是在本次的这个绕过方式里面和前面这两个洞的绕过方式截然不同,找到一个未在黑名单之内的新反序列化点,此时可以发送未经处理的gadgets对象,通过JRMP 协议达到执行任意反序列化 payl…
Java安全之Weblogic 2018-3248分析 0x00 前言 基于前面的分析,后面的还是主要看补丁的绕过方式,这里就来简单的记录一下. 0x01 补丁分析 先来看看补丁细节 private static final String[] DEFAULT_BLACKLIST_PACKAGES = { "org.apache.commons.collections.functors", "com.sun.org.apache.xalan.internal.xsltc.tra…
Java安全之ysoserial-JRMP模块分析(一) 首发安全客:Java安全之ysoserial-JRMP模块分析(一) 0x00 前言 在分析到Weblogic后面的一些绕过方式的时候,分析到一半需要用到ysoserial-JRMP该模块.不止是Weblogic的反序列化漏洞会利用到,其他的反序列化漏洞也会利用到,所以在此对该模块做一个分析.了解底层原理,一劳永逸.但看到网上分析文章偏少,如有分析错误望师傅们指出. 概述 在这里简单来讲讲JRMP协议相关内容,JRMP是一个Java远程方…
Java反序列化漏洞Apache CommonsCollections分析 cc链,既为Commons-Collections利用链.此篇文章为cc链的第一条链CC1.而CC1目前用的比较多的有两条链,LazyMap和TransformedMap.在ysoserial工具中,利用的是LazyMap链,而我们此篇分析的则是TransformedMap链. 1.本文所需前置知识 java反序列化基础 java反射基础 文章参考:https://github.com/Maskhe/javasec/bl…
Ysoserial Commons Collections2分析 About Commons Collections2 CC2与CC1不同在于CC2用的是Commons Collections4.0;同时利用方式CC2用到了Javassist动态编程,从功能上来说CC1用于执行命令,而CC2可以任意代码执行危害更大,所以像常用的shiro打内存马也会用到CC2. CC2 Gadget Chain Gadget chain: ObjectInputStream.readObject() Prior…
Ysoserial Commons Collections3分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK Version CommonsCollections1 CommonsCollections 3.1 - 3.2.1 1.7 (8u71之后已修复不可利用) CommonsCollections2 CommonsCollections 4.0 无限制 CommonsCollections3 Com…
Ysoserial Commons Collections7分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK Version Note CommonsCollections1 CommonsCollections 3.1 - 3.2.1 1.7 (8u71之后已修复不可利用) CommonsCollections2 CommonsCollections 4.0 暂无限制 javassist Commons…
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可见性和写数据一致性. 对修改可见 使用volatile来保证读取到最新的数据. volatile语义: 用简单的文字来讲,volatile保证了Java共享变量在多线程环境下对读可见的特性.因为它不是Java语言级别的锁,所以不会造成上下文切换,使用恰当的情况下比锁有更好的性能. 底层原理: vol…
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balabala讲了一堆,现在总结一下. java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素唯一).Map(维护多个key-value键值对,保证key唯一).其不同子类的实现各有差异,如是否同步(线程安全).是否有序.常用类继承树: 以下结合源码讲解常用类实现原理及相互之间的…
转载: Java虚拟机类加载机制--案例分析   在<Java虚拟机类加载机制>一文中详细阐述了类加载的过程,并举了几个例子进行了简要分析,在文章的最后留了一个悬念给各位,这里来揭开这个悬念.建议先看完<Java虚拟机类加载机制>这篇再来看这个,印象会比较深刻,如若不然,也没什么关系~~ 下面是程序代码: package jvm.classload; public class StaticTest { public static void main(String[] args) {…
在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O.通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据.同样,写入调用将会阻塞直至数据能够写入.传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求.这种模式带来的一个问题就是线程数量的剧增,大量的线程会增大服务器的开销.大多数的实现为了避免这个问题,都采用了线程池模型,并…
Java split方法源码分析 public String[] split(CharSequence input [, int limit]) { int index = 0; // 指针 boolean matchLimited = limit > 0; // 是否限制匹配个数 ArrayList<String> matchList = new ArrayList<String>(); // 匹配结果队列 Matcher m = matcher(input); // 待切…
http://shmilyaw-hotmail-com.iteye.com/blog/1897636 java fork-join框架应用和分析 博客分类: concurrency multithreading java java  问题来源 记得很早以前自己学习算法的时候,听说过一种divide and conquer的策略,从某种角度来说,它和递归是有着很紧密的联系.比如说我们经常想到的一些排序的算法像快速排序.归并排序等,他们都是本质上将原有的问题集合拆分成两个子问题,然后再针对这些子问题…
JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {backgro…
本篇文章主要介绍了"JAVA GC垃圾收集器的分析",主要涉及到JAVA GC垃圾收集器的分析方面的内容,对于JAVA GC垃圾收集器的分析感兴趣的同学可以参考一下.       在 很多人看来,java中内存的动态分配与内存回收已经不用用户担心了,因为它给我们提供了GC自动回收 ,感觉一切都进入了自动化了,但是对于各种内存溢出,内存泄漏问题的出现,我们还是很有必要学习GC的.地球人都知道,Java有个东西叫垃圾收集器,它 让创建的对象不需要像C/C++那样delete.free掉,但…
LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数: public native void unpark(Thread jthread); public native void park(boolean isAbsolute, long time); isAbsolute参数是指明时间是绝对的,还是相对的. 仅仅两个简单的接口,就为上层提供了强大的同步原…
Java运行原理及内存分析 一.Java运行原理 二.Java内存分析…
JAVA常用数据结构及原理分析  http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balabala讲了一堆,现在总结一下. java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素唯一).Map(维护多个key-value键值对,保证key唯一). 其不同子类的实现各有差异,如是否同步(线程安全).是否有序.常用类继承树: 以下结合源码讲解常用类实现原理及相互之…
ThreadLocal内部是用一张哈希表来存储: static class ThreadLocalMap { static class Entry extends WeakReference<ThreadLocal<?>> { /** The value associated with this ThreadLocal. */ Object value; Entry(ThreadLocal<?> k, Object v) { super(k); value = v; }…