前言 Resin是一个轻量级的、高性能的开源Java应用服务器。它是由CauchoTechnology开发的,旨在提供可靠的Web应用程序和服务的运行环境。和Tomcat一样是个服务器,它和hessian在一个group里,所以有一定的联系 <dependencies> <dependency> <groupId>com.caucho</groupId> <artifactId>resin</artifactId> <version>4.0.64</version> </dependency&...

  nN88aM5JAyPF   3天前   11   0   0 网络安全

前言 SnakeYaml是Java中解析yaml的库,而yaml是一种人类可读的数据序列化语言,通常用于编写配置文件等。yaml真是到哪都有啊。 环境搭建 <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.32</version> </dependency> SPI机制 介绍 SPI机制就是,服务端提供接口类和寻找服务的功能,客户端用户这边根据服务端提供的接口类来定义具体的实...

  nN88aM5JAyPF   5天前   9   0   0 网络安全

基础知识 命名空间和子命名空间 我们可以把namespace理解为一个单独的空间,事实上它也就是一个空间而已,子命名空间那就是空间里再划分几个小空间,举个例子: <?php namespaceanimal\cat; classcat{ publicfunction__construct() { echo"meow"."\n"; } } namespaceanimal\dogA; classdog{ publicfunction__construct() { echo"A:wooffff"."\n"; } } namespaceanimal\dogB; classdog { publicf...

  nN88aM5JAyPF   6天前   14   0   0 网络安全

前言 针对除Mysql的其它数据库的jdbcattack分析 H2RCE 介绍 H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,即只有一个jar文件,可以直接嵌入到应用项目中。H2主要有如下三个用途: 第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。 第二个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。 第三个用途是作为缓存,即当做内存数据库,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型,可以拿它当Memcached使,作为后端MySQL/Oracle的一个缓冲层,...

  nN88aM5JAyPF   8天前   15   0   0 网络安全

前言 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用它的开源项目有Hibernate、Spring等。之前有接触到过,但是没有深入了解,像之前学二次反序列化时,WrapperConnectionPoolDataSource就是C3P0的 环境搭建 <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> ...

  nN88aM5JAyPF   12天前   24   0   0 网络安全

前言 Kryo是一个快速序列化/反序列化工具,依赖于字节码生成机制(底层使用了ASM库),因此在序列化速度上有一定的优势,但正因如此,其使用也只能限制在基于JVM的语言上。Kryo序列化出的结果,是其自定义的,独有的一种格式。由于其序列化出的结果是二进制的,也即byte[],因此像redis这样可以存储二进制数据的存储引擎是可以直接将Kryo序列化出来的数据存进去。当然你也可以选择转换成String的形式存储在其他存储引擎中(性能有损耗) 环境搭建 <dependency> <groupId>com.esotericsoftware</groupId> &l...

  nN88aM5JAyPF   13天前   19   0   0 网络安全

前言 Groovy是一种基于JVM的开发语言,具有类似于Python,Ruby,Perl和Smalltalk的功能。Groovy既可以用作Java平台的编程语言,也可以用作脚本语言。groovy编译之后生成.class文件,与Java编译生成的无异,因此可以在JVM上运行。在项目中可以引用Groovy的相关包依赖,分为核心包和模块包,如果想依赖全部包,可以使用groovy-all 环境搭建 <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all&lt...

  nN88aM5JAyPF   14天前   13   0   0 网络安全

前言 Springboot一般都会自带JackSon这个依赖包,JackSon跟Fastjson有相同的功效 简单复现 packagecom.example.jakeson.demo; importjava.io.IOException; importjava.io.Serializable; publicclassUserimplementsSerializable{ publicUser(){ } publicObjectgetName()throwsIOException{ Runtime.getRuntime().exec("calc"); return"1"; } public...

  nN88aM5JAyPF   15天前   18   0   0 网络安全

环境搭建 先搭建一个SpringMVC项目,参考这篇文章,或者参考我以前的spring内存马分析那篇文章https://blog.csdn.net/weixin_65287123/article/details/136648903 SpringMVC路由 简单写个servlet packagecom.example.controller; importorg.springframework.stereotype.Controller; importorg.springframework.web.bind.annotation.GetMapping; importorg.springframe...

  nN88aM5JAyPF   15天前   21   0   0 网络安全

RPC协议 RPC全称为RemoteProcedureCallProtocol(远程调用协议),RPC和之前学的RMI十分类似,都是远程调用服务,它们不同之处就是RPC是通过标准的二进制格式来定义请求的信息,这样跨平台和系统就更加方便RPC协议的一次远程通信过程如下: 客户端发起请求,并按照RPC协议格式填充信息 填充完毕后将二进制格式文件转化为流,通过传输协议进行传输 服务端接收到流后,将其转换为二进制格式文件,并按照RPC协议格式获取请求的信息并进行处理 处理完毕后将结果按照RPC协议格式写入二进制格式文件中并返回 Hessian协议 Hessian是一个基于RPC的高性能二进制远程传...

  nN88aM5JAyPF   16天前   16   0   0 网络安全

前言 简单介绍下二次反序列化,顾名思义,就是反序列化两次,其主要意义是绕过黑名单的限制或不出网利用,有些CTF题把一大堆关键类全都ban了,这就让人无从下手,二次反序列化就是为此而生的 SignedObject 原理 看构造函数,接受一个可序列化的对象,再进行一次序列化,简直不要太perfect关注一下这个类的getObject方法,this.content可控,且进行了反序列化简单的构造一个恶意的SignedObject KeyPairGeneratorkpg=KeyPairGenerator.getInstance("DSA"); kpg.initialize(1024); KeyPair...

  nN88aM5JAyPF   17天前   13   0   0 网络安全

什么是JavaAgent 我们知道Java是一种强类型语言,在运行之前必须将其编译成.class字节码,然后再交给JVM处理运行。JavaAgent就是一种能在不影响正常编译的前提下,修改Java字节码,进而动态地修改已加载或未加载的类、属性和方法的技术。实际上,平时较为常见的技术如热部署、一些诊断工具等都是基于JavaAgent技术来实现的。那么JavaAgent技术具体是怎样实现的呢?对于Agent(代理)来讲,其大致可以分为两种,一种是在JVM启动前加载的premain-Agent,另一种是JVM启动之后加载的agentmain-Agent。这里我们可以将其理解成一种特殊的Interce...

  nN88aM5JAyPF   18天前   13   0   0 网络安全

环境搭建 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>rome</groupId> <artifactId>rome</artif...

  nN88aM5JAyPF   18天前   19   0   0 网络安全

漏洞原理 Spring框架的JtaTransactionManager类中重写了readObject方法,这个方法最终会调用到JNDI中的lookup()方法,关键是里面的参数可控,这就导致了攻击者可以利用JNDI注入中的lookup()参数注入,传入恶意URI地址指向攻击者的RMI注册表服务,以使受害者客户端加载绑定在攻击者RMI注册表服务上的恶意类,从而实现远程代码执行。 环境依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</art...

  nN88aM5JAyPF   20天前   18   0   0 网络安全

环境搭建 踩了很多坑....,不过还好最后还是成功了IDEA直接新建javaEE项目,然后记得把index.jsp删了,不然DispatcherServlet会失效导入依赖: <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.1</version> </dependency> <!-日志--&gt...

  nN88aM5JAyPF   20天前   19   0   0 网络安全

回顾JSP马 详情见:https://www.cnblogs.com/F12-blog/p/18111253之前说的都是利用jsp注入内存马,但Web服务器中的jsp编译器还是会编译生成对应的java文件然后进行编译加载并进行实例化,所以还是会落地。但如果直接注入,比如利用反序列化漏洞进行注入,由于request和response是jsp的内置对象,在回显问题上不用考虑,但如果不用jsp文件,就需要考虑如何回显的问题。其实主要要解决的问题就是如何获取request和response对象。目前主流的回显技术(部分)主要有: linux下通过文件描述符,获取Stream对象,对当前网络连接进行读...

  nN88aM5JAyPF   21天前   30   0   0 网络安全

前言 自己简单搭建一个Tomcat项目,IDEA里选择JavaEE,勾上web就行了加个依赖(这样就能找到三个Context了: <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>8.5.16</version> </dependency> Tomcat的三个Context ServletContext ServletContext是...

  nN88aM5JAyPF   25天前   29   0   0 网络安全

环境依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.19</version> </dependency> 原理分析 Java序列化对象的标识符 找两个序列化后的bin文件,进行对比,可以发现前两个字节是固定的AC,ED,变十进制就是-84,-19记住这两个数,后面分析的时候会用到 readObject 触发点在com.mysql.cj.jdbc.r...

  nN88aM5JAyPF   27天前   23   0   0 网络安全

OGNL基础 依赖 <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifactId> <version>3.1.19</version> </dependency> OGNL三要素 Expression表达式 root根对象、即操作对象 context上下文,用于保存对象运行的属性及值,有点类似运行环境的意思,保存了环境变量 看个例子 packageorg.example; publicclassTester{ pub...

  nN88aM5JAyPF   29天前   15   0   0 网络安全

环境依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.1.9.RELEASE</version> </dependency> </dependencies> SPEL表达式基础 SPEL简介 在Spring3中引入了Spring表达式语言(SpringExpressionLang...

  nN88aM5JAyPF   29天前   33   0   0 网络安全
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~