Java openrasp学习记录(一)

前言: 最近一直在做学校实验室安排的项目,太惨了,没多少时间学习新知识,不过rasp还是要挤挤时间学的,先从小例子的分析开始,了解rasp的基本设计思路,后面详细阅读openrasp的源码进行学习!欢迎在学习相关知识的师傅找我交流!如本文有所错误请指出~ 例子1 https://github.com ... »

Java ASM3学习(3)

MethodVisitor ClassVisitor的visitMethod能够访问到类中某个方法的一些入口信息,那么针对具体方法中字节码的访问是由MethodVisitor来进行的 访问顺序如下,其中visitCode和visitMaxs仅调用一次,标志方法字节码访问的开始和结束 MethodVi ... »

Java ASM学习(2)

1.编译后的方法区,其中存储的代码都是一些字节码指令 2.Java虚拟机执行模型: java代码是在一个线程内部执行,每个线程都有自己的执行栈,栈由帧组成,每个帧表示一个方法的调用,每调用一个方法,都将将新的帧压入执行栈,方法返回时(不管是整成return还是异常返回),该方法对应的帧都将出栈,即按 ... »

Java Instrumentation插桩技术学习

Instrumentation基础 openrasp中用到了Instrumentation技术,它的最大作用,就是类的动态改变和操作。 使用Instrumentation实际上也可以可以开发一个代理来监视jvm的上运行的程序,可以动态的替换类的定义,就可以达到虚拟机级别的AOP实现,随时可以为应用增 ... »

从源码学习Hashset和Hashtable

HashSet Java中的集合(Collection)有三类,一类是List,一类是Queue,再有一类就是Set。 前两个集合内的元素是有序的,元素可以重复;最后一个集合内的元素无序,但元素不可重复。 Set: 1.用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复 2.对象的相等性本质 ... »

从JDK源码学习Hashmap

这篇文章记录一下hashmap的学习过程,文章并没有涉及hashmap整个源码,只学习一些重要部分,如有表述错误还请在评论区指出~ 1.基本概念 Hashmap采用key算hash映射到具体的value,因此查找效率为o(1),为防止hash冲突,在数组的基础上加入链表、红黑树,为无序非线程安全的存 ... »

从JDK源码学习Arraylist

从今天开始从源码去学习一些Java的常用数据结构,打好基础:) Arraylist源码阅读: jdk版本:1.8.0 首先看其构造方法: 构造方法一: 第一种支持初始化容量大小,其中声明一个对象数组,赋值给this.elementdata 构造方法二: 第二种无参构造函数,即不指定初始容量大小,则默 ... »

ysoserial-C3P0 分析

环境准备: pom: <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <ver ... »

weblogic-CVE-2020-2551-IIOP反序列化学习记录

CORBA: 具体的对CORBA的介绍安全客这篇文章https://www.anquanke.com/post/id/199227说的很详细,但是完全记住是不可能的,我觉得读完它要弄清以下几个点: 1.什么是CORBA? CORBA全称(Common ObjectRequest Broker Arc ... »

java反序列化-ysoserial-调试分析总结篇(3)

前言: 这篇文章主要分析commoncollections3,这条利用链如yso描述,这个与cc1类似,只是反射调用方法是用的不是invokeTransformer而用的是InstantiateTransformer,整个调用过程如下图 利用链分析: 如上图所示,入口点还是Annotationinv ... »

java反序列化-ysoserial-调试分析总结篇(2)

前言: 这篇主要分析commonCollections2,调用链如下图所示: 调用链分析: 分析环境:jdk1.8.0 反序列化的入口点为src.zip!/java/util/PriorityQueue.java 此时将会对队列调用siftdown函数,其中队列中包含了两个元素,其中一个即为temp ... »

ysoserial-调试分析总结篇(1)

前言: ysoserial很强大,花时间好好研究研究其中的利用链对于了解java语言的一些特性很有帮助,也方便打好学习java安全的基础,刚学反序列化时就分析过commoncollections,但是是跟着网上教程,自己理解也不够充分,现在重新根据自己的调试进行理解,这篇文章先分析URLDNS和co ... »

javaweb-codereview 学习记录-5

1.关于URLConnection 应用程序利用url与远程通信的所有类的超类 jdk1.8中支持的协议包括以上这些,gopher在jdk8中取消了。 java中默认对(http|https)做了一些事情,比如: 默认启用了透明NTLM认证 默认跟随跳转 httpURLconnection可能jdk ... »

关于看后的一些总结-2

关于JNDI: 命名系统是一组关联的上下文,而上下文是包含零个或多个绑定的对象,每个绑定都有一个原子名(实际上就是给绑定的对象起个名字,方便查找该绑定的对象), 使用JNDI的好处就是配置统一的管理接口,下层可以使用RMI、LDAP或者CORBA来访问目标服务 要获取初始上下文,需要使用初始上下文工 ... »

关于看后的一些总结-1

原文地址:https://www.anquanke.com/post/id/194384#h3-3 1.java rmi 关于rmi客户端和服务端通信的过程,java的方法都实现在rmi服务端,客户端实际上是通过访问rmi注册表拿到stub,然后再通过它调用服务端方法,那么调用方法时要传递参数,参数 ... »

javaweb-codereview 学习记录-4

反射java.lang.Runtime 之前在p牛的知识星球中也学过反射机制调用Runtime来执行命令时需要用getruntime来返回Runtime类的实例,因为Runtime类设计是单例模式,并且该类的构造方法是私有的,因此无法直接通过newinstance来实例化该类,因此除了通过getRu ... »