fastjson全版本漏洞
fastjson基础简介Fastjson是一个Java库,可以将Java对象转换为JSON格式,也可以将JSON字符串转换为Java对象。Fastjson可以操作任何Java对象,即使是一些预先存在的没有源码的对象。 指纹特征任意抓包,改为POST请求,格式改为application/json,请求体为{不闭合,返回包会出现fastjson字样。当然也可能是无回显 导入依赖12345<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version></dependency> Demo1234567891011121314151617public class test { public int age; public String name; public test(int age,...
shiro-721反序列化漏洞
环境搭建12345678910111213<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.1</version> </dependency><!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-web --> <dependency> <groupId>org.apache.shiro</groupId> ...
shiro-550反序列化漏洞
漏洞成因为了让浏览器或服务器重启后用户不丢失状态,Shiro支持将持久化信息序列化并加密后保存在Cookie的remeberMe字段中,下次读取时再进行反序列化。但是在Shiro 1.2.4版本之前内置了一个默认且固定的加密Key,导致攻击者可以伪造任意的remeberMe Cookie,进而触发反序列化漏洞。 指纹识别第一种:返回包中包含rememberMe=deleteMe字段 第二种:直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增加字段rememberMe=然后查看返回数据包中是否存在关键字 环境搭建 jdk...
Java JRMP
概念Java Remote Method Protocol,Java远程方法协议。 RMI依赖的通信协议为JRMP,该协议用于查找和引用远程对象,是运行在RMI之下、TCP/IP之上的线路层协议。 一个RMI的过程,需要用到JRMP这个协议去组织数据格式然后通过TCP进行传输、从而达到调用远程方法的目的。 当服务端与客户端之间通过socket建立连接,其中通信的协议就是通过JRMP协议格式来进行通信的 JRMP接口的两种常见实现方法: JRMP协议(Java Remote Message Protocol):RMI专用的Java远程消息交换协议 IIOP协议(Internet Inter-ORB...
Java JDBC注入深度解析
概念Java Database Connetivity,Java数据库连接,是Java提供对数据库进行连接、操作的标准API。 相关类和接口 java.sql.DriverManager Java通过java.sql.DriverManager来管理所用数据库的驱动注册,提供getConnection方法来连接数据库 java.sql.Driver 负责实现对数据库的连接,所以数据库驱动包都必须实现这个接口才能完成数据库连接操作 jva.sql.Connection 通过java.sql.DriverManager.getConnection方法成功连接数据库后,会返回一个java.sql.Connection数据库连接对象,一切对数据库的查询操作都将依赖于这个对象 JDBC Demo先开启mysql环境 JDBC连接数据库的一般步骤: 注册驱动 获取连接 先添加依赖: 12345<dependency> <groupId>mysql</groupId> ...
Java RMI反序列化深度解析
RPCRemote Procedure Call,远程过程调用。像本地调用方法一样调用一个远程方法。 RMI概念RMI,全程Remote Method Invocation,远程方法调用,一种用于实现远程过程调用的应用编程接口。 它使客户端上运行的程序可以调用远程服务器上对象的方法,即通过某个java虚拟机上的对象来调用另一个java虚拟机中对象的方法。 客户端获取的是远程主机上对象的引用,无论何处使用引用,方法调用都发生在原始对象上 RMI实现了RPC,通常使用Java原生反序列化,并且可以结合动态类加载和安全管理器来安全传输一个Java类。 远程对象和非远程对象远程对象:RMI中的远程对象首先需要可以序列化;并且需要实现特殊远程接口的对象,该接口指定可以远程调用对象的哪些方法;其次该对象是通过一种可以通过网络传递的特殊对象引用来使用的。和普通的 Java...










