SerializeJava 图形化工具

admin 2025年1月16日22:59:32评论15 views字数 1067阅读3分33秒阅读模式

SerializeJava

SerializeJava是用Go语言+GUI库Fyne开发的,展示JAVA序列化流以及集成一键插入脏数据,UTF过长编码绕WAF(Utf OverLoad Encoding),修改类SerializeVersionUID功能的图形化工具。

使用介绍

下载源码后在根目录运行go run main.go或直接下载运行发行版中的exe文件。 SerializeJava 图形化工具

展示序列化流结构

输入一段JAVA对象的序列化流Base64编码,点击"show the Stream Structure" SerializeJava 图形化工具

插入脏数据

SerializeJava 图形化工具 输入你想要插入的字节数。这个功能可以来绕过一些限制检测长度的WAF,由于这里插入脏数据的部分位于序列化流的前面,可以使得WAF检测不到危险的序列化数据。本工具插入的是序列化流中的TC_RESET--(byte)0x79。然后点击最下面的change按钮,便可以生成相应的序列化流Base64编码。(可与其它功能一键使用)

过长UTF字符编码

SerializeJava 图形化工具 可以选择对UTF进行二字节编码或三字节编码。一般的UTF字符是由一个byte进行编码,如'a'对应97。而JAVA的反序列化中支持将两个或三个byte解码成UTF字符,此时UTF字符'a'将会变成两个不可见及三个的byte,可以绕过一些检测UTF字符的检测机制(如检测恶意类,恶意参数。) 比如CC5在一字节UTF编码的情况下: SerializeJava 图形化工具 而对其进行二字节UTF编码的情况下: SerializeJava 图形化工具 同样的,选择后可以点击change按钮生成相应的Base64编码(可与其它功能一键使用)

改变SerialVerionUID

SerializeJava 图形化工具 输入序列化流base64编码后,点击check会先解析出流中各个类的类名及其SerialVersionUID,可在输入框中改变相应数据。这样可以避免反序列化端(服务端)与序列化端(客户端)使用的版本不一致(由SerialVersionUID判断)引发的错误。同样的,改变可以点击change按钮生成相应的Base64编码(可与其它功能一键使用)

使用测试

有源码,建议自行编译

使用yso之类的工具生成序列化文件,以常见的CB链为例

SerializeJava 图形化工具

将序列化文件进行base64编码,可以看到类结构信息

SerializeJava 图形化工具

当生成cb链的依赖和目标环境有差异时,会报SerialVerionUID错误

SerializeJava 图形化工具

使用工具进行修改,也可以插入脏数据或者uft8编码bypass

SerializeJava 图形化工具

修改后就可以正常反序列化了

SerializeJava 图形化工具

下载

https://github.com/byname66/SerializeJava

原文始发于微信公众号(哈拉少安全小队):【工具推荐】SerializeJava 图形化工具

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月16日22:59:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SerializeJava 图形化工具https://cn-sec.com/archives/3633867.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息