首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JMS序列化程序在Mysql BLOB反序列化时返回资源id #xxx

JMS序列化程序是一种用于将Java消息服务(JMS)中的消息对象序列化和反序列化的程序。JMS是一种用于在分布式系统中发送、接收和处理消息的标准API。序列化是将对象转换为字节流的过程,以便在网络上传输或存储到数据库中。

Mysql BLOB是一种用于存储二进制大对象的数据类型。在反序列化过程中,将字节流转换回对象。然而,在某些情况下,当使用JMS序列化程序将消息对象存储为Mysql BLOB并尝试进行反序列化时,可能会遇到返回资源id的问题。

资源id #xxx是指在反序列化过程中,当尝试将BLOB转换回对象时,可能会返回一个资源id,而不是预期的对象。这可能是由于序列化和反序列化过程中的某些问题导致的。

为了解决这个问题,可以尝试以下几个步骤:

  1. 检查JMS序列化程序的版本和配置:确保使用的JMS序列化程序版本与Mysql数据库兼容,并且配置正确。
  2. 检查对象的序列化和反序列化过程:确保在序列化和反序列化过程中没有任何错误或异常。可以使用调试工具或日志记录来跟踪序列化和反序列化的过程,并查看是否有任何异常或错误发生。
  3. 检查数据库表和字段定义:确保Mysql数据库表和字段的定义与序列化和反序列化过程中使用的对象类型匹配。如果定义不匹配,可能会导致反序列化时返回资源id。
  4. 尝试使用其他序列化程序或库:如果问题仍然存在,可以尝试使用其他的JMS序列化程序或库来替代当前的程序。不同的序列化程序可能具有不同的实现方式和特性,可能会解决当前问题。

总结起来,当使用JMS序列化程序在Mysql BLOB反序列化时返回资源id #xxx时,可能是由于版本不兼容、配置错误、序列化和反序列化过程中的错误、数据库表和字段定义不匹配等原因导致的。解决方法包括检查版本和配置、检查序列化和反序列化过程、检查数据库定义,以及尝试其他序列化程序或库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Hessian 反序列化及相关利用链

有的通过反射自动调用getter(xxx)和setter(xxx)访问对象属性,有的还需要调用默认Constructor,有的处理器(指的上面列出来的那些)反序列化对象时,如果类对象的某些方法还满足自己设定的某些要求...有的处理器支持多态特性时,例如某个对象的某个属性是Object、Interface、abstruct等类型,为了反序列化时能完整恢复,需要写入具体的类型信息,这时候可以指定更多的类,反序列化时也会自动调用具体类对象的某些方法来设置这些对象的属性值...序列化时会根据对象、属性不同类型选择对应的序列化其进行序列化反序列化时也会根据对象、属性不同类型选择不同的反序列化器;每个类型序列化器中还有具体的FieldSerializer。...Student student = deserialize(obj); System.out.println(student); }} 下面是对上面这个demo进行调试后画出的Hessian反序列化时处理的大致面貌...case 77这个处理中,读取了要反序列化的类型,接着调用this.

1.4K30

SpringDataJPA笔记(1)-基础概念和注解

entity class的所有id fieldid class都要定义,且类型一样。 @MapKey 一对多,多对多关系中,我们可以用Map来保存集合对象。...,这可以通过OrderBy来实现,默认是按对象的主键升序排列 JSON相关注解 @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,...序列化反序列化都受影响 @JsonIgnore 此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样 @JsonFormat 此注解用于属性或者方法上(...Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss") @JsonSerialize 此注解用于属性或者getter方法上,用于序列化时嵌入我们自定义的代码...@JsonDeserialize 此注解用于属性或者setter方法上,用于反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize

3.9K20

Android 序列化 Serializable与Parcelable

具体过程是这样的:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID..."默认值" : this.name); } /** * 反序列化时,系统会调用readObject方法,将我们刚刚在writeObject方法序列化好的属性, *...反序列化回来.然后通过readResolve方法,我们也可以指定系统返回给我们特定的对象 * 可以不是writeReplace序列化时的对象,可以指定其他对象. */ private...实现Parcelable接口 由于Serializable在内存序列化上开销比较大,而内存资源属于android系统中的稀有资源(android系统分配给每个应用的内存开销都是有限的),为此android...newArray方法创建数组,最终利用Parcel的一系列read方法完成反序列化,最后由describeContents完成内容描述功能,该方法一般返回0,仅当对象中存在文件描述符时返回1。

1.9K60

18 JDBC 数据库编程

Java 中实现 java.io.Serilizable接口的对象才能被序列化反序列化。Java 还提供了两个流:ObjectInputStream 和 ObjectOutputStream。...但序列化不支持事务处理、查询或者向不同的用户共享数据。序列化只适用于最简单的应用,或者某些无法有效地支持数据库的嵌入式系统中。...启用mysql的预处理 ResultSet接口 Statement执行SQL语句时,如果是SELET语句会返回结果集,结果集通过接口java.sql.ResultSet描述的,它提供了逐行访问结果集的方法...getBoolean():获得在数据库里是布尔数据的类型,返回值类型是boolean。 getBlob():获得在数据库里是Blob(二进制大型对象)类型的数据,返回值类型是Blob类型。...String getString(String columnName) throws SQLException 方法getXXX提供了获取当前行中某值的途径,每一行内,可按任何次序获取值。

1.1K30

fastjson链分析(1.2.22-47)

=1, _name='uname', _passwd='passwd'} 很明显的序列化时会调用类中各属性的get方法,而反序列化时会调用其set方法。...: {"@type":"org.example.JsonTest","id":1,"name":"uname","passwd":"passwd"} 再对其反序列化时就无需再指定对应的类了: Object...反序列化过程 先在JSON.parseObject处下个断点,跟入看看fastjson的反序列化过程。...比较好奇的是此处的class类的作用,在对class类进行反序列化时,其调用链如下: deserializer#deserialze -> TypeUtils#loadClass(strVal,parser.getConfig...开发目的应该是为了程序运行效率,省去每次都需要去重新加载类的麻烦,但却因为class反序列化时会调用loader将其他类装载进来导致了绕过名单的后果。

45830

RESTful源码学习笔记之RPC和Restful深入理解

3、 client stub找到服务地址,并将消息通过网络发送到服务端; 4、 server stub收到消息后进行解码,Java里就是反序列化的过程; 5、 server stub根据解码结果调用本地的服务...3、序列化反序列化 : 当A服务器上的应用发起远程过程调用时,方法的参数需要通过底层的网络协议如TCP传递到B服务器,由于网络协议是基于二进制的,内存中的参数的值要序列化成二进制的形式,也就是序列化(...同理,B服务器接收参数要将参数反序列化。B服务器应用调用自己的方法处理后返回的结果也要序列化给A服务器,A服务器接收也要经过反序列化的过程。...B服务器上完成寻址后,需要对参数进行反序列化,恢复为内存中的表达方式,然后找到对应的方法进行本地调用,然后得到返回值, 4.   ...返回值还要发送回服务器A上的应用,也要经过序列化的方式发送,服务器A接到后,再反序列化,恢复为内存中的表达方式,交给应用

64430

Android序列化总结

随后对对象进行反序列化时,将创建出与原对象完全相同的副本。...具体过程是这样的:序列化操作的时候系统会把当前类的serialVersionUID写入到序列化文件中,当反序列化时系统会去检测文件中的serialVersionUID,判断它是否与当前类的serialVersionUID..."默认值" : this.name); } /** * 反序列化时,系统会调用readObject方法,将我们刚刚在writeObject方法序列化好的属性, *...反序列化回来.然后通过readResolve方法,我们也可以指定系统返回给我们特定的对象 * 可以不是writeReplace序列化时的对象,可以指定其他对象. */ private...newArray方法创建数组,最终利用Parcel的一系列read方法完成反序列化,最后由describeContents完成内容描述功能,该方法一般返回0,仅当对象中存在文件描述符时返回1。

77020

渗透测试 Java架构执行漏洞检测

反序列化 4.3.5.1. 简介 序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。...反序列化流程 ObjectInputStream实例初始化时,读取魔术头和版本号进行校验 调用ObjectInputStream.readObject()开始读对象数据 ○读取对象类型标识 ○readOrdinaryObject...GSON Gson默认只能反序列化基本类型,如果是复杂类型,需要程序员实现反序列化机制,相对比较安全。 4.3.5.6.2....Jackson 除非指明@jsonAutoDetect,Jackson不会反序列化非public属性。防御时,可以不使用enableDefaultTyping方法。...Hook resolveClass 使用 readObject() 反序列化时会调用 resolveClass 方法读取反序列化的类名,可以通过hook该方法来校验反序列化的类,一个Demo如下 以上的

1.3K30

渗透测试公司对JAVA架构安全漏洞测试

反序列化 4.3.5.1. 简介 序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。...反序列化流程 ObjectInputStream实例初始化时,读取魔术头和版本号进行校验 调用ObjectInputStream.readObject()开始读对象数据 ○读取对象类型标识 ○readOrdinaryObject...GSON Gson默认只能反序列化基本类型,如果是复杂类型,需要程序员实现反序列化机制,相对比较安全。 4.3.5.6.2....Jackson 除非指明@jsonAutoDetect,Jackson不会反序列化非public属性。防御时,可以不使用enableDefaultTyping方法。...Hook resolveClass 使用 readObject() 反序列化时会调用 resolveClass 方法读取反序列化的类名,可以通过hook该方法来校验反序列化的类,一个Demo如下 以上的

1.1K20

pwnhub冬季赛web

返回值 ¶ 成功时返回 **true**, 或者失败时返回 **false**。 有如下代码 index.php <?...然后new⼀个xxx类,如果该xxx类未定义,程序会在 ⼯作空间中寻找xxx.php或xxx.inc,并将其包含 ⼤致如下 index.php: <?...phar反序列化与file_put_contents特性 知道了上面那些特性,现在看代码就能发现我们可以上传xxx.inc,但是没有办法new⼀个类,我们看 到file_put_contents就可以发现可以用...phar反序列化的方法来反序列化⼀个类了 参考文章 :利用 phar 拓展 php 反序列化漏洞攻击面 下面的问题就是绕过waf的问题 看看代码,发现难点就是绕过 spl_autoload_register...⼀个xxx类, 因为xxx代码中没有定义,所以会在工作空间中包含 xxx.php 或者 xxx.inc 来执行任意代 码。

51510

追洞小组 | Jdbc反序列化漏洞复现浅析

所以该漏洞的关键只需要能够控制客户端的jdbc连接,连接阶段就可以进行处发反序列化。这篇文章也不深入理解mysql的协议。使用idea maven项目创建,pom中导入jdbc的坐标。...这里我们可以看到field.mysqlType不能为255,并且field是Binary而且是Blob属性才能进入获取字段的data属性并进行之后的反序列化。 ?...(效果上来看是Query执行前后各插入一次操作)autoDeserialize:自动检测与反序列化存在BLOB字段中的对象。...而进入这里的方法只是将上次的 set namesutf8 的结果返回反序列化。 ? ? 一直走到反序列化的点,将结果返回反序列化。弹出第一次计算机。 ? resultSetToMap ?...都是第二次的show Session Status进行了反序列化的操作。刚刚是分析了第一个红框的两次反序列化操作,接下来是下一个红框的反序列化操作,可以看到左下角的调用栈。 ?

2.5K30

Spring Boot demo系列 :Redis缓存

,比如如果返回值为User,则会被序列化为: spring: datasource: url: jdbc:mysql://localhost:3306/test username:...序列化到Redis时,实体类会被加上一个@class字段: 这个标识供Jackson反序列化时使用,笔者一开始的实体类实现是: data class User(var id:Int?...=null, var name:String="") 但是序列化后不携带@class字段: 反序列化时直接报错: Could not read JSON: Missing type id when trying...12.2.2 将实体类设置为open Java中,实体类没有任何额外配置,Redis序列化/反序列化一样没有问题,是因为值序列化器GenericJackson2JsonRedisSerializer,...但是Kotlin中,类默认不是open的,也就是无法添加@class字段,因此便会反序列化失败,解决方案是将实体类设置为open: open class User(var id:Int?

9110

【手册详解】Java序列化引发的血案

所以每个序列化类都有一个叫 serialVersionUID 的版本号,反序列化时会校验待反射的类的序列化版本号和加载的序列化字节流中的版本号是否一致,如果序列化号不一致则会抛出 InvalidClassException...强烈推荐每个序列化类都手动指定其 serialVersionUID,如果不手动指定,那么编译器会动态生成默认的序列化号,因为这个默认的序列化号和类的特征以及编译器的实现都有关系,很容易反序列化时抛出...但是父类和子类有相同类型属性时,由于先序列化子类再序列化父类,因此反序列化时子类的同名属性会被父类的值覆盖掉,开发时要特别注意这种情况。...下面给出使用 Gson 框架模拟 JSON 序列化时遇到的反序列化问题的示例代码: /** * 验证GSON序列化类型错误 */ @Test public void testGSON() {...服务 B 的接口返回的 Map 值中存在一个 Long 类型的 id 字段,服务 A 获取到 Map ,取出 id 字段并强转为 Long 类型使用。

90920

放弃FastJson!一篇就够,Jackson的功能原来如此之牛(万字干货)

但并不是所有的属性都可以被序列化反序列化,基本上遵循一下规则: public修饰的属性可序列化反序列化。 属性提供public的getter/setter方法,该属性可序列化反序列化。...串中不存在时,get方法会null,而path会返回MissingNode实例对象,链路方法情况下保证不会抛出异常。...格式化统一配置 使用ObjectMapper时,会存在一些字段某些情况下不需要进行序列化反序列化,同时还可能需要指定格式化的一些信息等。此时,可以通过ObjectMapper进行配置。...//反序列化时忽略json中存在但Java对象不存在的属性 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false...反序列化时@JsonIgnoreProperties(ignoreUnknown=true)会忽略类中不存在的字段。 @JsonFormat作用于字段上,通常用来进行格式化操作。

3.3K31

MySQL 5.7 JSON 实现简介

文档合法性 MySQL5.7.7对JSON提供原生类型的支持之前,用户可以用TEXT或者BLOB类型来存储JSON文档。...性能优化 MySQL提供JSON原生支持之前,如果用户需要获取或者修改某个JSON文档的键值,需要把TEXT或者BLOB整个字符串读出来反序列化成JSON对象,然后通过各种库函数访问JSON数据。...MySQL在内存中是以DOM的形式表示JSON文档,而且MySQL解析某个具体的路径表达式时,只需要反序列化和解析路径上的对象,而且速度极快。...要弄清楚MySQL是如何做到这些的,我们就需要了解JSON硬盘上的存储结构。有个有趣的点是,JSON对象是BLOB的子类,在其基础上做了特化。...源代码可以看到,序列化JSON文档时,MySQL会动态检测单个对象的大小,如果小于64KB使用两个字节的偏移量,否则使用四个字节的偏移量,以节省空间。

15.2K30

MySQL5.7 JSON实现简介

为什么JSON的原生支持 文档合法性 MySQL5.7.7对JSON提供原生类型的支持之前,用户可以用TEXT或者BLOB类型来存储JSON文档。...性能优化 MySQL提供JSON原生支持之前,如果用户需要获取或者修改某个JSON文档的键值,需要把TEXT或者BLOB整个字符串读出来反序列化成JSON对象,然后通过各种库函数访问JSON数据。...MySQL在内存中是以DOM的形式表示JSON文档,而且MySQL解析某个具体的路径表达式时,只需要反序列化和解析路径上的对象,而且速度极快。...要弄清楚MySQL是如何做到这些的,我们就需要了解JSON硬盘上的存储结构。有个有趣的点是,JSON对象是BLOB的子类,在其基础上做了特化。...源代码可以看到,序列化JSON文档时,MySQL会动态检测单个对象的大小,如果小于64KB使用两个字节的偏移量,否则使用四个字节的偏移量,以节省空间。

2.5K40

一文了解PHP的各类漏洞和绕过姿势

> 6、sha1() 和md5()加密函数 都用于计算字符串的散值 但是两者都无法处理数组,不会抛出异常而是直接返回NULL 例子 <?...('flag.php'); $a = "www.<em>xxx</em>.com"; $id = $_GET['id']; @parse_str($id); if ($a[0] !...('flag.php'); $a = "www.xxx.com"; $id = $_GET['id']; @parse_str($id); if ($a[0] !...此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误 3、PHP的反序列化漏洞 PHP反序列化漏洞出现的原因: unserialize()传入参数可控 某些魔术方法可用...题的解法,打开了反序列化的大门,之后再black 2018有一位演讲者也谈到了phar协议反序列化中的运用,大大增加了攻击面 phar 文件包在 生成时会以序列化的形式存储用户自定义的 meta-data

4K60

BUUCTF web writeup

区别: 单引号( ' )或双引号主要用于对字符串的引用符号 eg:mysql> SELECT 'hello', "hello" ; 反勾号( ` )主要用于数据库、表、索引、和别名用的引用符是[Esc...通过重命名把藏flag的表和改成默认查询的表和的名字 这样程序就会读到flag payload: inject=1'alter table `1919810931114514` add `id`...php xxx?...> 考察反序列相关漏洞 不太了解的可以去看 先知上的这篇文章一文让PHP反序列化从入门到进阶 读了class.php 发现需要 username=admin 并且 password=100才可以 还有一段核心代码...file参数后面用伪协议读取useless.php的内容 useless.php文件内容为 最后我们令file=useless.php可以看到代码会反序列化password传入的内容所以我们直接传入序列化字符串

1.1K10
领券