Fastjson1.2.68 绕Autotype的一点总结 - tr1ple tr1ple(Wfzsec) 4 years 2 months ago 这篇文章主要总结学习目前网上关于1.2.68下绕过Autotype的一些方法用到的思路。 前置知识: checkautotype因为是对要进行反序列化的类进行检测的方法 所以我们只需要让其返回Class类型的实例即可 一般会有以下几种情况通过验证: 1.autoTypeCheckHandlers不为 tr1ple
Java openrasp学习记录-2 - tr1ple tr1ple(Wfzsec) 4 years 2 months ago Author:tr1ple 主要分析以下四个部分: 1.openrasp agent 这里主要进行插桩的定义,其pom.xml中定义了能够当类重新load时重定义以及重新转换 这里定义了两种插桩方式对应之前安装时的独立web的jar的attach或者修改启动脚本添加rasp的jar的方式 其中ini tr1ple
Java openrasp学习记录-1 - tr1ple tr1ple(Wfzsec) 4 years 5 months ago 前言 最近一直在做学校实验室安排的项目,太惨了,没多少时间学习新知识,不过rasp还是要挤挤时间学的,先从小例子的分析开始,了解rasp的基本设计思路,后面详细阅读openrasp的源码进行学习!欢迎在学习相关知识的师傅找我交流!如本文有所错误请指出~ 例子1 https://github.com/ tr1ple
Java ASM3学习(3) - tr1ple tr1ple(Wfzsec) 4 years 5 months ago MethodVisitor ClassVisitor的visitMethod能够访问到类中某个方法的一些入口信息,那么针对具体方法中字节码的访问是由MethodVisitor来进行的 访问顺序如下,其中visitCode和visitMaxs仅调用一次,标志方法字节码访问的开始和结束 MethodVi tr1ple
Java ASM3学习(2) - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 1.编译后的方法区,其中存储的代码都是一些字节码指令 2.Java虚拟机执行模型: java代码是在一个线程内部执行,每个线程都有自己的执行栈,栈由帧组成,每个帧表示一个方法的调用,每调用一个方法,都将将新的帧压入执行栈,方法返回时(不管是整成return还是异常返回),该方法对应的帧都将出栈,即按 tr1ple
Java Instrumentation插桩技术学习 - tr1ple tr1ple(Wfzsec) 4 years 6 months ago Instrumentation基础 openrasp中用到了Instrumentation技术,它的最大作用,就是类的动态改变和操作。 使用Instrumentation实际上也可以可以开发一个代理来监视jvm的上运行的程序,可以动态的替换类的定义,就可以达到虚拟机级别的AOP实现,随时可以为应用增 tr1ple
Java ASM3学习(1) - tr1ple tr1ple(Wfzsec) 4 years 6 months ago ASM也是字节码编辑库,如果我们的目的仅仅是为目标类添加某些功能,也可以考虑动态代理,但是动态代理是面向接口的,因为proxy.newinstance实际上是对某个接口定义一个invocaionHandler,那么这样限制就比较大,并且对代理的每一次函数调用都将被invocationHandler处 tr1ple
从JDK源码学习HashSet和HashTable - tr1ple tr1ple(Wfzsec) 4 years 6 months ago HashSet Java中的集合(Collection)有三类,一类是List,一类是Queue,再有一类就是Set。 前两个集合内的元素是有序的,元素可以重复;最后一个集合内的元素无序,但元素不可重复。 Set: 1.用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复 2.对象的相等性本质 tr1ple
从JDK源码学习HashMap - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 这篇文章记录一下hashmap的学习过程,文章并没有涉及hashmap整个源码,只学习一些重要部分,如有表述错误还请在评论区指出~ 基本概念 Hashmap采用key算hash映射到具体的value,因此查找效率为o(1),为防止hash冲突,在数组的基础上加入链表、红黑树,为无序非线程安全的存储结 tr1ple
从JDK源码学习ArrayList - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 从今天开始从源码去学习一些Java的常用数据结构,打好基础:) Arraylist源码阅读: jdk版本:1.8.0 首先看其构造方法: 构造方法一: 第一种支持初始化容量大小,其中声明一个对象数组,赋值给this.elementdata 构造方法二: 第二种无参构造函数,即不指定初始容量大小,则默 tr1ple
Java XXE漏洞典型场景分析 - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 本文首发于oppo安全应急响应中心: https://mp.weixin.qq.com/s?__biz=MzUyNzc4Mzk3MQ==&mid=2247485488&idx=1&sn=65098eb75e035ff2f90d1ea552c4100a&chksm=fa7b097ccd0c806a40 tr1ple
CVE-2020-7961 Liferay Portal 复现分析 - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 漏洞说明: Liferay是一个开源的Portal(认证)产品,提供对多个独立系统的内容集成,为企业信息、流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而且免费,在全球都有较多用户. 该洞是个反序列化导致的rce,通过未授权访问其api传递json数据进 tr1ple
ysoserial-C3P0 分析 - tr1ple tr1ple(Wfzsec) 4 years 6 months ago 环境准备: pom: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <ver tr1ple
weblogic-CVE-2020-2551-IIOP反序列化学习记录 - tr1ple tr1ple(Wfzsec) 4 years 7 months ago CORBA: 具体的对CORBA的介绍安全客这篇文章https://www.anquanke.com/post/id/199227说的很详细,但是完全记住是不可能的,我觉得读完它要弄清以下几个点: 1.什么是CORBA? CORBA全称(Common ObjectRequest Broker Arc tr1ple
ysoserial-CommonsCollections系列总结篇 - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 本文首发于安全客:https://www.anquanke.com/post/id/200637 前言: 网上分析CommonsCollections调用链的文章也有不少,但是看完分析文章直接手动构造利用链仍有难度,因此这篇文章主要总结本人调试ysoserial的CommonsCollections tr1ple
CVE-2020-2555调用链复现分析 - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 本文首发于先知社区:https://xz.aliyun.com/t/7417 0x01前言 该洞主要针对weblogic的coherence.jar中存在能够实现反序列化gadget构造的类,并且经过T3协议接收的数据经过反序列化处理后将导致漏洞的产生,这篇文章主要详细记录调试学习CVE 2020 tr1ple
ysoserial源码结构分析 - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 1.前言 之前也花了几天晚上熟悉了一下commonscollections系列的构造,那么学习一下这个项目是如何设计的也挺重要,多学习大佬如何写代码应该也能对自己的代码能力有提升吧~2333 2.项目结构: 首先代码结构如上图所示 exploit文件夹下主要是放一些主要的利用模块,比如如下两个例子 tr1ple
java反序列化-ysoserial-调试分析总结篇(7) - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 前言: CommonsCollections7外层也是一条新的构造链,外层由hashtable的readObject进入,这条构造链挺有意思,因为用到了hash碰撞 yso构造分析: 首先构造进行rce所需要的转换链,这里也用的是chianed里面套Constantrans+invoketrans的 tr1ple
java反序列化-ysoserial-调试分析总结篇(6) - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 前言: 这篇记录CommonsCollections6的调试,外层也是新的类,换成了hashset,即从hashset触发其readObject(),yso给的调用链如下图所示 利用链分析: 首先在hashset内部首先获取器容量与负载因子等操作,然后创建hashmap,将ObjectinputSt tr1ple
java反序列化-ysoserial-调试分析总结篇(5) - tr1ple tr1ple(Wfzsec) 4 years 7 months ago 前言: 这篇文章继续分析commonscollections5,由如下调用链可以看到此时最外层的类不是annotationinvoke,也不是priorityqueue了,变成了badattribute 该类要求没有配置security manager 利用链分析: 首先在badAttribute的 tr1ple