
javasec
文章平均质量分 77
java~~~~
qq_45449318
弃用csdn了。挺无语的这玩意。
展开
-
shiro反序列化漏洞与无依赖CB链分析
shiro反序列化漏洞与无依赖CB链分析原创 2023-02-22 17:33:25 · 1480 阅读 · 0 评论 -
cc1-7分析-2
cc1-7分析-2原创 2023-01-04 15:56:37 · 380 阅读 · 0 评论 -
cc1-7分析
无原创 2022-08-08 17:43:06 · 253 阅读 · 0 评论 -
jdk动态代理介绍及invoke方法自动运行的原因
jdk动态代理介绍及invoke方法自动运行的原因原创 2022-03-01 15:27:48 · 1420 阅读 · 1 评论 -
javaSec-Servlet的线程安全问题
javaSec-Servlet的线程安全问题刚开始看见关于这的知识点是在p神的知识星球看见y4师傅发的,后来又看见了vnctf用了这个知识点,就简单的写下。这里直接拿easyJava这题的题目环境当了demo:刚开始有个任意文件读取,直接读Servlet文件反编译下先看HelloWorldServlet://// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompile原创 2022-02-20 19:55:41 · 3723 阅读 · 0 评论 -
javaSec-rmi详解
javaSec-rmi对于rmi这从很久前就接触到了利用,原理也是只简单的了解了一些,一直没有好好的梳理过,最近正好看到了好多相关的资料,顺便写下。前置知识:RPC理解RPC可以从他的名字开始,RPC的全称是Remote Method Call,顾名思义就是远程方法调用,RPC呢他不是一个框架也不是一个协议,是一个概念性的东西,只是远程通信的一种方式,区别其他远程通信的方式,他是其中的一种,这种概念性的东西,可能从定义说起来很烦,所以我尽量从代码的方式来理解。从单机到分布式->分布式通信 :就原创 2022-02-12 18:50:59 · 586 阅读 · 0 评论 -
java的命令执行与bypassRASP
关于php的webshell相信大家已经很了解了,webshell就是相当于可以控制目标服务器的一小段代码。今天讲下java的webshell以及bypassRASP。java的命令执行一般都是通过Runtime类的Runtime.getRuntime().exec()方法来执行,来看一段demo (建议练习审计时不要用docker的环境,建议idea启动):看一下执行效果:OK,这一段代码就是一个简单的webshell。接下来我们简单的看下调用链:...转载 2021-09-01 16:41:48 · 1268 阅读 · 0 评论 -
java类加载器机制——3.URLClassLoader
URLClassLoader继承了ClassLoader,URLClassLoader提供了加载远程资源的能力,在写漏洞利用的payload或者webshell的时候我们可以使用这个特性来加载远程的 jar 来实现远程的类方法调用。TestURLClassLoader.java 示例:import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.URL;import java.net.URLClass原创 2021-07-14 17:37:52 · 895 阅读 · 0 评论 -
java类加载器机制——2.自定义一个ClassLoader
ClassLoader一切的Java类都必须经过JVM加载后才能运行,而ClassLoader的主要作用就是Java类文件的加载。在JVM类加载器中最顶层的是Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)、App ClassLoader(系统类加载器),AppClassLoader是默认的类加载器,如果类加载时我们不指定类加载器的情况下,默认会使用AppClassLoader加载类,ClassLoader.getSystemClass转载 2021-07-14 17:37:18 · 367 阅读 · 0 评论 -
java类加载器机制——1.java的类加载及类加载器机制
(最开始在github上发布的,有的图片不知为啥在这打不开贴个gayhub原文地址:https://github.com/wa1ki0g/javasec)我们在学习java编程时,大概都知道java文件的执行顺序,即先编译成class文件即字节码文件,然后再移交给java虚拟机去进一步翻译执行这些文件。但是我们却不知道类加载过程的真正的细节。在jvm的启动是通过,引导类加载器(bootstrap class loade)创建加载一个初始类来完成的,jvm组成结构之一就是类装载器子系统,今天我们先从这个原创 2021-07-14 17:36:27 · 198 阅读 · 0 评论 -
java反射——3_反射java_lang_Runtime进行rce及一点补充
java.lang.Runtime因为有一个exec方法可以执行命令,所以在很多的payload中我们都可以看到反射调用Runtime类来执行本地系统命令,通过学习如何反射Runtime类也能让我们理解反射的一些基础用法以及一些攻击手法不使用反射执行本地命令代码片段:System.out.println(IOUtils.toString(Runtime.getRuntime().exec("whoami").getInputStream(),"UTF-8"));如上可以看到,我们可以使用一行代码完成转载 2021-07-14 17:33:35 · 1362 阅读 · 0 评论 -
java反射——2_java反射常用api
获取反射中的class对象在反射中要获取一个类或调用一个类的方法,我们首先要获取到该类的class对象在java API中,获取Class类对象有三种方法:第一种,使用Class.forName 静态方法。当你知道该类的全路径名时,你可以使用该方法获取Class类对象Class clz = Class.forName("java.lang.String");第二种,使用类的.class方法,这种方法只适合在编译前就知道操作的ClassClass clz = String.class;第三种转载 2021-07-14 17:32:53 · 186 阅读 · 0 评论 -
java反射——1_java的反射机制基础
J ava反射(Reflection)是Java非常重要的动态特性,通过使用反射我们不仅可以获取到任何类的成员方法(Methods)、成员变量(Fields)、构造方法(Constructors)等信息,还可以动态创建Java类实例、调用任意的类方法、修改任意的类成员变量值等。Java反射机制是Java语言的动态性的重要体现,也是Java的各种框架底层实现的灵魂。一般情况下我们使用某个类的时候,比如创建个对象或者直接引用等,都会必定知道他是什么类,是用来做什么的。于是我们可以直接对其进行实例转载 2021-07-14 17:31:39 · 116 阅读 · 0 评论