用友NC简介

Programming language 专栏收录该内容
30 篇文章 0 订阅

什么是NC

NC是一个基于Java标准(更多的是JavaEE标准)的、以B/S方式运行的、可跨硬件平台的、可跨操作系统的、可跨数据库的、可跨服务器的、开发高端ERP产品平台

       NC平台基于的技术有:SwingJDBCEJBServetRMI、线程等技术。该平台将这些Java标准再次进行封装,使其更能够适应ERP产品的开发、更能够将逻辑放到业务层面上来,同时也更加安全,高效。

       也就是说程序员不用再考虑底层的Java技术的实现,只需要掌握NC平台的相关语言(即经过用友封装的NC语言)就可以开发出专业的、高端的ERP产品了。

ERP-NC是用友面向高端市场的ERP(Enterprise Resource Planning,企业资源计划)产品,为集团企业提供完整的管理解决方案。

以“2000年——新产品——新世纪——New Century为思考逻辑而命名为NC的产品线。

注意:NC也是一种ERP产品,相当于SAP,只不过是中国自己的ERP产品。

      UAP(UFIDA Application Platform)。

 

UAP_NC体系框架?

UAP_NC体系框架主要包括三方面:

· 系统框架层 该层主要的作用就是实现NC产品的跨平台、跨数据库、跨服务器的操作;

· 技术框架层 该层是一个Java标准技术的一个封装层,封装了诸多Java标准技术,例如:SwingJDBCEJBServlet等技术。 该层屏蔽了许多技术实现的细节,减少了直接用Java代码的复杂性、不稳定性及不安全性。

该层的另一个作用是该层还是一个系统资源监控和管理层。

该层的典型应用有:

持久化技术;工作流技术;SQL语句翻译;远程调用消息;异常;缓存;日志记录等。

· 应用框架层 该层基于企业建模理论、以业务导向为驱动。该层将应用软件的业务逻辑和开发技术分开,使得应用软件的开发者只关心具体的业务逻辑,而不必关心繁琐的技术。

该层的典型应用有:

国际化;消息管理;数据交换;访问控制等。

如下图:


NC的工作原理?

       系统前端的UI代码,通过调用远程组件与服务器端进行交互,中间以VO为载体进行数据传递,然后通过NCJDBCFramework来对数据进行持久化操作,完成整个交互逻辑。

 

NC的版本 NC代码组织结构 NC包组织结构?

       目前NC的最高版本为NCV6.0,尚未发布。常用的还是NCV5.x

 

下面看一下NC5.x的代码结构:

· public 该目录存放接口和公共代码(例如:VO和公共算法);

· private 该目录存放具体的实现细节;

· client 该目录存放客户端代码;

· gen  该目录存放工具自动生成的EJB代码;

· META-INF  该目录存放模块配置文件目录,包括module.xml文件和*.module接口配置文件

 

       下面再看一下NC的包结构:

       · nc.itf.*;  表示定义的接口,提供本业务下UI的访问接口;

       · nc.impl.*;  表示定义接口的实现;

       · nc.vo.*;  表示定义的VO

       · nc.bs.*;  表示普通的后台应用;

       · nc.ui.*;  表示客户端代码;


  • 3
    点赞
  • 0
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

用友 NC 是一款企业管理软件,在近万家大中型企业使用。实现建模、开发、继承、运行、管理一体化的 IT 解决方案信息化平台,其代码实现逻辑上存在多处反序列化漏洞。   2020 年 6 月 4 日,有国内安全组织披露用友 NC 存在反序列化远程命令执行“0-Day”漏洞。经分析,漏洞真实存在,攻击者通过构造特定的 HTTP 请求,可以成功利用漏洞在目标服务器上执行任意命令,该漏洞风险极大,可能造成严重的信息泄露事件。鉴于漏洞利用的源代码已经公开,建议用户尽快修复此漏洞。   2、攻击原理   通过UClient打开用友NC,UClient本质为UBroswer,一个专用的用友NC浏览器嵌入了JAVA运行环境,以解决NC 6系列之前的版本中applet在不同设备上的应用问题。经过文件目录查看分析得知用友UClient安装后,会在用户目录下新建uclient文件夹,根据看到的NCLogin65.jar文件,结合java运行进程信息,分析得知是一些界面和登陆逻辑代码,nc_client_home则是NC应用依赖的其他一些代码和jar包,因此可以使用Luyten反编译工具查看NCLogin65.jar,通过简单运行NC应用,尝试进行用户登陆,使用wireshark抓包,查看app.log运行日志,发现大量serialize和deserialize,说明系统中应用了序列化方式来传送数据。在LoginUI类中的login方法打断点,启动Idea进行跟踪调试,当跟踪到loginImple方法时,发现多处调用了NCLocator的lookup方法查找Service接口进行操作,通过跟踪发现,实际使用了RmiNCLocator类,RmiNCLocator类的lookup方法,这里的lookup,已初步判断出无需继续跟踪调试,可以直接通过jndi注入漏洞进行利用。   黑客就是通过构造特定的 HTTP 请求,成功利用漏洞可在目标服务器上执行任意命令,漏洞暂无安全补丁发布,属 0Day 等级,风险极大。黑客利用漏洞可完全控制服务器,获取服务器的敏感信息。   3、影响范围   用友NC全版本
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值