这几天学习了BlackHat Europe 2019的议题《New Exploit Technique In Java Deserialization Attack》, 膜拜师傅们的同时,做一个简单的分析。该需要能够控制客户端的JDBC连接串,在连接阶段即可触发,无需继续执行SQL语句。测试代码需要自            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-02 21:26:07
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            
        
        听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着 tabby 或是 codeql 一起看的,但是 tabby 的环境搭建一直有问题,耽误了很久时间,所以就直接看了。本来不太想写这点基础的,但想了想觉得还是要补一点。JDBC 对数据库的操作一般有以下步骤
    0x01 前言听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着 tabby            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 07:18:55
                            
                                13阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            (生成原理)1.在页面类对象,执行PR方法的时候,先创建了控件树,然后通过执行LoadState方法,将请求报文中的名字为 __VIEWSTATE的值,然后反base64编码,进行反序列化,最终还原成集合,然后将其中属于程序员自己的添加到ViewState 里的键值对 还原到 页面对象的ViewState属性中。然后才执行的Page_Load方法。在执行SaveState(将所有的服务器端控件的属            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-24 16:23:42
                            
                                207阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # MySQL 反序列化
## 流程概述
MySQL 反序列化是指将存储在数据库中的序列化数据重新转换为对象或数据结构。在实现 MySQL 反序列化之前,我们需要先了解序列化和反序列化的概念。
序列化是将对象转换为可存储或传输的格式的过程,而反序列化则是将序列化的数据重新转换为对象的过程。在 MySQL 中,序列化通常是指将对象序列化为二进制格式存储在 BLOB(Binary Large O            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-30 07:14:52
                            
                                10000+阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何实现 MySQL 反序列化
在这篇文章中,我们将介绍如何在 MySQL 中实现反序列化。反序列化是将储存在数据库中的序列化数据还原为对象的过程。在许多应用中,尤其是在使用缓存、数据传输和数据持久化时,反序列化可以帮助我们有效管理数据。
## 文章结构
1. **理解反序列化的概念**
2. **反序列化的实现流程**
3. **每一步的详细代码实现**
4. **总结与建议**
#            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-26 05:02:26
                            
                                132阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MySQL JDBC 反序列化漏洞最早提出应该是BlackHat Europe 2019会议中的一个议题,下图是机翻的截图。JDBC是Java 的 API,它定义了客戶端如何访问数据库。JDBC是接口,而JDBC Driver才是接口的实现。下图是菜鸟教程上的一个实例原理分析首先是连接的url中第一个可被利用的参数 autoDeserialize,也是该漏洞的反序列化点,位于com.mysql.c            
                
         
            
            
            
            我曾经一致认为序列化是一种关乎对象属性顺序的东西,比如前后端互传数据的话,序列化可以帮助属性的排序按一定规则,但我查过几次都没有找到明确的答案,也不能怪我有这么奇怪的理解,属实是“序列”这两个字太混淆视听了,直到今天我才算有点正确理解了。言归正传,Java序列化可以理解成是一种加密措施,这个东西的目的是为了统一格式、化整为零,因为java的对象类型是无数的,包括自定义的,如果按格式去输出到磁盘未免            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-01 10:33:18
                            
                                32阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            JDBC反序列化漏洞Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法简单来说,你可以理解为 JDBC是封装好的数据库接口,你可以直接使用java调用该组件的接口,他把数据库的协议封装好了,让你无需对协议进行理解即可使用。大致思路就是在JDBC连接MySQ            
                
         
            
            
            
            前言: 在打春秋云境Exchange 靶场时,入口点是华夏ERP 2.3版本系统,存在fastjson 反序列化漏洞,在尝试常见的fastjson利用链反弹shell都没有反应,最终使用mysql JDBC利用链反弹shell成功。在此记录一下。复现本地靶场搭建在打靶场过程中,迟迟没有利用成功,在本地搭建靶场先进行反序列化利用测试,github下载jshERP-2.3版本源码。 本地用到的工具和数            
                
         
            
            
            
            背景介绍2019年11月底Yang Zhang等人在BlackHat上有个议题,提到MySQL JDBC客户端反序列 化漏洞,用到ServerStatusDiffInterceptor,参[1]。2019年12月Welkin给出了部分细节,但当时未解决恶意服务端的组建问题,参[2]。codeplutos利用修改过的MySQL插件成功组建恶意服务端,这个脑洞开得可以。与此 同时,他演示了另一条利用路            
                
         
            
            
            
             文章目录前言正文1.有关__reduce__()2.R指令的禁用3.有关opcode的编写(1)原始的方法(手写)(2)神器pker4.题目加更5.后记 前言写这篇文章的起因是两次遇到python pickle的题目都只做到了命令执行的程度,但都没有反弹shell。看别人的wp都是通过curl将flag拉到vps上的,怎么说呢,死于没有公网IP。虽然之前在做题的时候,照着网上的exp可以把自己的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-19 22:41:24
                            
                                16阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            0X01 背景.NET反序列化漏洞里的核心Gadget:ObjectDataProvider类,封装于WPF核心程序集之一PresentationFramework.dll,处于System.Windows.Data命名空间下,顾名思义就是把一个非静态类实例化后的对象作为数据源提供给WPF控件绑定,常见用法如下ObjectDataProvider obj = new ObjectDataProvi            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-10 21:22:55
                            
                                15阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Java反序列化是指将序列化后的数据结构还原为相应的对象,这一过程广泛应用于Java应用程序中,尤其是在网络通信和持久化数据存取等环境下。然而,Java反序列化也可能成为安全漏洞的源头,例如恶意用户可能利用反序列化漏洞达到攻击目的。因此,理解Java反序列化的问题、解决方案及其潜在风险尤为重要。
```mermaid
graph LR
    A[Java反序列化] --> B[协议背景]            
                
         
            
            
            
            一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。   把字节序列恢复为对象的过程称为对象的反序列化。   对象的序列化主要有两种用途:   1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;   2) 在网络上传送对象的字节序列。  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Sess            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-22 21:13:52
                            
                                114阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null,可以用以下的注解方式完成当属性为null时不参与序列化:@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)@JsonIgnoreProperties类注解,作用是json序列化时将bean中的一些属性忽略掉,序列化            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-17 10:06:53
                            
                                718阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录小知识漏洞原理序列化反序列化函数解析序列化:serialize()函数反序列化 :unserialize()函数魔术方法pikachu靶场练习1靶场练习2总结 小知识weblogic反序列化漏洞该漏洞挖掘较难。与变量覆盖一样,并不是说具体的漏洞,而是与它的具体代码有关。=== 【比较 数值相等、类型相等】== 【比较,数值相等】= 【赋值 赋予数值】=> 【键值分离】-> 【            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-11 23:36:58
                            
                                60阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            概念序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。目的① 方便进行数据传输。在分布式系统中,需要把对象在网络上传输,所以需要把对象数据转换为二进制形式。② 节省服务器内存。如果服务器发现某些对象好久没有活动了,那么服务器就会把这些内存中的对象持久化在本地磁盘文件中(Java对象转换为二进制文件);如果服务器发现某些对象需要活动时,先去内            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-12 08:26:36
                            
                                98阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            系列化对象public static <T> byte[] enSeri(T obj) { Class<T> cls = (Class<T            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-03-19 09:22:00
                            
                                2391阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            0x01 前言听师傅们说这条链子用的比较广泛,所以最近学一学,本来是想配合着 tabby 或是 codeql 一起看的,但是 tabby 的环境搭建一直有问题,耽误了很久时间,所以就直接看了0x02 JDBC 的基础• 本来不太想写这点基础的,但想了想觉得还是要补一点JDBC 对数据库的操作一般有以下步骤• 导入包:要求您包含包含数据库编程所需的 JDBC 类的软件包。通常,使            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-06-04 11:13:54
                            
                                89阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            反序列化概念相关函数注意事项魔术方法+题目例题:flag.phpphp __wakeupphp Session例题phar反序列化(未完成)构造pop链例一:例二 概念数据(变量)序列化(持久化) 将一个变量的数据“转换为”字符串,但并不是类型转换,目的是将该字符串储存在本地。相反的行为称为反序列化。 序列化和反序列化的目:使得程序间传输对象会更加方便相关函数 代码如下,可以自己测试测试<            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-05 10:02:30
                            
                                89阅读
                            
                                                                             
                 
                
                                
                    