XXL-Job hessian反序列化实战利用
字数 761 2025-08-26 22:11:35

XXL-Job Hessian反序列化漏洞实战利用分析

漏洞概述

XXL-Job是一个分布式任务调度平台,其某些版本中存在Hessian反序列化漏洞,攻击者可以利用该漏洞在目标系统上执行任意代码。

漏洞原理

Hessian是一种基于二进制的RPC协议,在Java中广泛使用。当XXL-Job服务端接收并反序列化恶意构造的Hessian数据时,如果未进行适当的安全检查,可能导致远程代码执行。

影响版本

根据社区信息,该漏洞影响XXL-Job的多个版本,具体版本范围需要进一步确认。

漏洞利用步骤

1. 环境探测

首先需要识别目标系统是否使用XXL-Job,可通过以下特征识别:

  • 默认端口:9999
  • 特定URL路径:/xxl-job-admin

2. 构造恶意Hessian序列化数据

利用Hessian协议构造包含恶意代码的序列化数据:

// 示例恶意序列化数据构造代码
public class MaliciousHessianPayload {
    public static byte[] generate() throws Exception {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        Hessian2Output out = new Hessian2Output(bos);
        
        // 构造恶意对象链
        out.writeObject(new EvilObject());
        out.close();
        
        return bos.toByteArray();
    }
}

3. 发送恶意请求

将构造好的恶意Hessian数据发送到XXL-Job服务端:

curl -X POST http://target:9999/xxl-job-admin/hessian-endpoint \
     -H "Content-Type: application/hessian" \
     --data-binary @malicious.hessian

4. 利用链构造

常见的利用链可以基于以下Gadget Chain:

  1. TemplatesImpl
  2. JdbcRowSetImpl
  3. 其他可利用的第三方库链

防御措施

1. 升级版本

升级到XXL-Job官方最新版本,已修复此漏洞。

2. 输入验证

对Hessian反序列化数据进行严格验证:

public class SafeHessianDeserializer {
    public static Object deserialize(byte[] data) throws Exception {
        // 使用白名单机制
        WhitelistObjectInputStream ois = new WhitelistObjectInputStream(new ByteArrayInputStream(data));
        return ois.readObject();
    }
}

3. 安全配置

  • 禁用不必要的Hessian端点
  • 配置网络ACL限制访问来源
  • 启用JVM安全管理器

漏洞验证

可使用以下方法验证漏洞是否存在:

  1. 发送无害的序列化数据观察响应
  2. 使用DNSLog等技术验证是否可触发外部连接

参考链接

免责声明

本文仅用于安全研究和技术学习目的,未经授权对他人系统进行测试或攻击是违法行为。

XXL-Job Hessian反序列化漏洞实战利用分析 漏洞概述 XXL-Job是一个分布式任务调度平台,其某些版本中存在Hessian反序列化漏洞,攻击者可以利用该漏洞在目标系统上执行任意代码。 漏洞原理 Hessian是一种基于二进制的RPC协议,在Java中广泛使用。当XXL-Job服务端接收并反序列化恶意构造的Hessian数据时,如果未进行适当的安全检查,可能导致远程代码执行。 影响版本 根据社区信息,该漏洞影响XXL-Job的多个版本,具体版本范围需要进一步确认。 漏洞利用步骤 1. 环境探测 首先需要识别目标系统是否使用XXL-Job,可通过以下特征识别: 默认端口:9999 特定URL路径:/xxl-job-admin 2. 构造恶意Hessian序列化数据 利用Hessian协议构造包含恶意代码的序列化数据: 3. 发送恶意请求 将构造好的恶意Hessian数据发送到XXL-Job服务端: 4. 利用链构造 常见的利用链可以基于以下Gadget Chain: TemplatesImpl 链 JdbcRowSetImpl 链 其他可利用的第三方库链 防御措施 1. 升级版本 升级到XXL-Job官方最新版本,已修复此漏洞。 2. 输入验证 对Hessian反序列化数据进行严格验证: 3. 安全配置 禁用不必要的Hessian端点 配置网络ACL限制访问来源 启用JVM安全管理器 漏洞验证 可使用以下方法验证漏洞是否存在: 发送无害的序列化数据观察响应 使用DNSLog等技术验证是否可触发外部连接 参考链接 Hessian协议官方文档 XXL-Job官方GitHub Java反序列化漏洞白皮书 免责声明 本文仅用于安全研究和技术学习目的,未经授权对他人系统进行测试或攻击是违法行为。