java反序列化之MySQL JDBC链
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行Sql语句的Java Api,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范。简单理解为链接数据库、对数据库操作都需要通过jdbc来实现
Mysql JDBC 中包含一个危险的扩展参数: "autoDeserialize"。这个参数配置为 true 时,JDBC 客户端将会自动反序列化服务端返回的数据,这就产生了 RCE
漏洞复现mysql-connector-java:https://mvnrepository.com/artifact/mysql/mysql-connector-java使用师傅的项目:https://github.com/fnmsd/MySQL_Fake_Server修改config.json中的ysoserial位置成功连接后,触发cc6利用链的反序列化
12345678910111213package jdbc;import java.sql.*;public class JdbcTe ...
java反序列化之Rome链
ROME 是一个可以兼容多种格式的 feeds 解析器,可以从一种格式转换成另一种格式,也可返回指定格式或 Java 对象,Rome是为RSS聚合而开发的开源包,它可以支持0.91、0.92、0.93、0.94、1.0、2.0,可以说rss的版本基本上都支持
下载地址:https://rometools.github.io/rome/ROMEReleases/ROME1.0Release.html
前置知识ObjectBeancom.sun.syndication.feed.impl.ObjectBean是 Rome 提供的一个封装类型,初始化时提供了一个 Class 类型和一个 Object 对象实例进行封装ObjectBean 也是使用委托模式设计的类,其中有三个成员变量,分别是 EqualsBean/ToStringBean/CloneableBean 类,这三个类为 ObjectBean 提供了 equals、toString、clone 以及 hashCode 方法
看一下 ObjectBean 的hashCode方法,会调用 EqualsBean 的b ...
Shiro反序列化漏洞
Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对RememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞
影响版本:Apache Shiro <= 1.2.4
漏洞分析找到1.2.4版本下载:https://codeload.github.com/apache/shiro/zip/refs/tags/shiro-root-1.2.4
由于漏洞点在 cookie 这里,找到 shiro 处理 cookie 的类org.apache.shiro.web.mgt.CookieRememberMeManager
看到解密的getRememberedSerializedIdentity方法
获取cookie中的值 rememberMe,然后进行base64解码,并返回,那么看一下哪里调用了getRememberedSerializedIdentity方法
发现在org.apache.shiro.mgt.AbstractRememberMeMa ...
java反序列化之CommonsCollections链
学web还是得接触java反序列化,太重要了
java序列化与反序列化全讲解序列化文件头是ac ed 00 05 ,经过base64转换之后是ro0AB,00 05是序列化协议版本反序列化时调用重写的readObject()方法,导致了命令执行
123456789101112131415161718192021222324252627282930313233import java.io.*;public class test{ public static void main(String args[]) throws Exception{ //定义myObj对象 MyObject myObj = new MyObject(); myObj.name = "hi"; //创建一个包含对象进行反序列化信息的”object”数据文件 FileOutputStream fos = new FileOutputStream("object"); O ...
Redis漏洞学习笔记
Redis介绍REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型
sudo redis-server /etc/redis.conf
Redis 未授权访问漏洞漏洞的产生条件有以下两点:
redis 绑定在 0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网没有设置密码认证(一般为空),可以免密码远程登录redis服务
修改/etc/redis.conf配置文件:
然后我们就可以在攻击机kali上使用redis客户端直接无账号成功登录ubun ...