fastjson原生反序列化漏洞
前言在前面fastjson利用中,我们是通过利用@type获取我们的恶意对象,然后通过调用其构造方法、setter和getter方法来造成漏洞。而在fastjson依赖包中,同样也存在着和CC链一样的利用方式,通过从readObject出发的原生链。 在fastjson中可以序列化的类有: com.alibaba.fastjson.JSONArray com.alibaba.fastjson.JSONObject com.alibaba.fastjson.JSONException com.alibaba.fastjson.JSONPathException fastjson<=1.2.48&2版本限制:fastjson1小于等于1.2.48版本、fastjson2...
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> ...










