写在前面:合法学习边界
本文利用只允许在授权环境进行。用友 NC 多用于企业财务系统,入侵真实系统可能触犯法律。
一、漏洞原理
用友 NC/NCC 是国内企业常用的 ERP 系统,历史漏洞多且影响大。常见问题集中在:
1
2
3
4
| 1. 反序列化:接口对不可信对象反序列化 → RCE
2. BeanShell:部分版本存在 BeanShell 接口可直接执行
3. 文件上传:任意文件上传 → WebShell
4. 接口未授权:敏感接口可匿名访问
|
本质:ERP 系统功能多、历史包袱重,接口安全跟不上。
二、影响与危害
1
2
3
| 直接 RCE / GetShell
财务数据、数据库密码泄露
内网横向移动
|
风险等级:严重。
三、利用 / 复现
1. 反序列化
1
2
3
| 用友 NC 多个 Servlet/接口存在反序列化
配合 ysoserial(CommonsCollections 等)gadget 发送恶意序列化对象 → RCE
常见入口:/servlet/...、/NCFindWeb/...、NCCloud 相关接口
|
2. BeanShell
1
2
| 部分版本可访问 BeanShell 控制台/接口
通过 bsh 脚本执行命令
|
3. 文件上传
1
2
| 部分上传接口未校验类型
上传 JSP/WebShell 后访问执行
|
4. 工具化利用
1
2
| 网上有成熟的 NC 检测/利用脚本
先指纹识别版本,再对号入座打对应漏洞
|
复现操作步骤
1
2
3
4
5
| 第 1 步:识别 NC 版本(登录页/特征路径)
第 2 步:探测反序列化/上传/BeanShell 接口
第 3 步:用对应 PoC 发恶意对象 / 上传文件
第 4 步:看是否命令执行 / Web 目录生成文件 —— 生成即 GetShell
第 5 步:确认后记录证据并收敛
|
四、检测
1
2
3
4
| 指纹:识别用友 NC 版本(登录页/特征路径)
探测反序列化接口与上传接口
版本核对已知 CVE 与公开 PoC
日志中异常序列化请求/上传文件
|
五、防御
1
2
3
4
| 升级到官方安全补丁版本
限制 ERP 系统公网暴露,走内网+VPN
对反序列化/上传接口做 WAF 防护
最小化开放端口
|
六、修复
1
2
3
4
| 及时打厂商补丁
清理已上传 WebShell 与后门
禁用不必要的接口与服务
修复后复测:反序列化与上传均被拒
|
七、小结
用友 NC 代表国内“老牌 ERP + 安全欠账”的典型场景。它的价值在于财务与内网数据,漏洞利用往往直通 GetShell。防护上“打补丁 + 收敛暴露面 + WAF”三件套缺一不可。