关于Vmware vcenter未授权任意文件上传漏洞(CVE-2021-21972)的问题

背景

CVE-2021-21972 vmware vcenter的一个未授权的命令执行漏洞。该漏洞可以上传一个webshell至vcenter服务器的任意位置,然后执行webshell即可。

影响版本

vmware:esxi:7.0/6.7/6.5
vmware:vcenter_server:7.0/6.7/6.5

漏洞复现 fofa查询

语法:title="+ ID_VC_Welcome +"

POC

https://x.x.x.x/ui/vropspluginui/rest/services/uploadova

使用https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC脚本批量验证

#-*- coding:utf-8 -*-
banner = """
    888888ba       dP
    88  `8b      88
    a88aaaa8P' .d8888b. d8888P .d8888b. dP  dP
    88  `8b. 88' `88  88  Y8ooooo. 88  88
    88  .88 88. .88  88     88 88. .88
    88888888P `88888P8  dP  `88888P' `88888P'
  ooooooooooooooooooooooooooooooooooooooooooooooooooooo
        @time:2021/02/24 CVE-2021-21972.py
        C0de by NebulabdSec - @batsu
 """
print(banner)

import threadpool
import random
import requests
import argparse
import http.client
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
http.client.HTTPConnection._http_vsn = 10
http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0'

TARGET_URI = "/ui/vropspluginui/rest/services/uploadova"

def get_ua():
  first_num = random.randint(55, 62)
  third_num = random.randint(0, 3200)
  fourth_num = random.randint(0, 140)
  os_type = [
    '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
    '(Macintosh; Intel Mac OS X 10_12_6)'
  ]
  chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)

  ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
          '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
         )
  return ua

def CVE_2021_21972(url):
  proxies = {"scoks5": "http://127.0.0.1:1081"}
  headers = {
    'User-Agent': get_ua(),
    "Content-Type": "application/x-www-form-urlencoded"
  }
  targetUrl = url + TARGET_URI
  try:
    res = requests.get(targetUrl,
              headers=headers,
              timeout=15,
              verify=False,
              proxies=proxies)
              # proxies={'socks5': 'http://127.0.0.1:1081'})
    # print(len(res.text))
    if res.status_code == 405:
      print("[+] URL:{}--------存在CVE-2021-21972漏洞".format(url))
      # print("[+] Command success result: " + res.text + "\n")
      with open("存在漏洞地址.txt", 'a') as fw:
        fw.write(url + '\n')
    else:
      print("[-] " + url + " 没有发现CVE-2021-21972漏洞.\n")
  # except Exception as e:
  #   print(e)
  except:
    print("[-] " + url + " Request ERROR.\n")
def multithreading(filename, pools=5):
  works = []
  with open(filename, "r") as f:
    for i in f:
      func_params = [i.rstrip("\n")]
      # func_params = [i] + [cmd]
      works.append((func_params, None))
  pool = threadpool.ThreadPool(pools)
  reqs = threadpool.makeRequests(CVE_2021_21972, works)
  [pool.putRequest(req) for req in reqs]
  pool.wait()

def main():
  parser = argparse.ArgumentParser()
  parser.add_argument("-u",
            "--url",
            help="Target URL; Example:http://ip:port")
  parser.add_argument("-f",
            "--file",
            help="Url File; Example:url.txt")
  # parser.add_argument("-c", "--cmd", help="Commands to be executed; ")
  args = parser.parse_args()
  url = args.url
  # cmd = args.cmd
  file_path = args.file
  if url != None and file_path ==None:
    CVE_2021_21972(url)
  elif url == None and file_path != None:
    multithreading(file_path, 10) # 默认15线程

if __name__ == "__main__":
  main()

EXP 修复建议

vCenter Server7.0版本升级到7.0.U1c
vCenter Server6.7版本升级到6.7.U3l
vCenter Server6.5版本升级到6.5 U3n

到此这篇关于关于Vmware vcenter未授权任意文件上传漏洞(CVE-2021-21972)的问题的文章就介绍到这了,更多相关Vmware vcenter上传漏洞内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • VMware vCenter 6.7 安装过程(图文教程)

    背景 我本来是要在VMware 官方download 一个6.7的Vcenter,但是除了VMware-VCSA-all-6.7 还看到一个 VMware-VIM-all-6.7 .VCSA 4G大小,VIM 2G大小,所以我两个都下载了.VCSA这么大4G肯定是vcenter集成Linux系統了,省事方便.VIM是基于Windows平台的安裝.接下來我簡單的两个都安裝一下. 安装VIM 一.VIM什么意思? vmware integrated managemen 的缩写 VIM,翻译过来就是

  • 详解VMware接入Openstack—使用Openstack创建vCenter虚拟机

    前言 从虚拟化的层面来说,GuestOS 的生命周期.迁移.快照等管理过程都离不开 Hypervisor 的支持. EG. KVM/VMwate Workstation/Hpyer-V 等 VMM .VMware 暴露的 API 接口和 OpenStack Dirver 驱动程序两种结合,就能够实现使用 Openstack 平台来管理多种虚拟化产品.本质上就是 Openstack 的 Nova Service 能够使用这些 API/Dirver 去连接 VMware Hypervisor 并达到

  • 关于Vmware vcenter未授权任意文件上传漏洞(CVE-2021-21972)的问题

    背景 CVE-2021-21972 vmware vcenter的一个未授权的命令执行漏洞.该漏洞可以上传一个webshell至vcenter服务器的任意位置,然后执行webshell即可. 影响版本 vmware:esxi:7.0/6.7/6.5 vmware:vcenter_server:7.0/6.7/6.5 漏洞复现 fofa查询 语法:title="+ ID_VC_Welcome +" POC https://x.x.x.x/ui/vropspluginui/rest/ser

  • phpcmsv9.0任意文件上传漏洞解析

    漏洞存在地址: burp抓包 POST /phpcms_v9.6.0_UTF8/install_package/index.php?m=member&c=index&a=register&siteid=1 HTTP/1.1 Host: 192.168.0.109 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0 Accept: text/html,ap

  • Django实现任意文件上传(最简单的方法)

    利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django的forms,也不需要django的models,就可以实现,下面开始实现. 第一步:在模板文件中,创建一个form表单,需要特别注意的是,在有文件上传的form表单中,method属性必须为post,而且必须指定它的enctype为"multipart/form-data",表明不对字符进行编码,具体的代码如下: <form enctype="multipart/form-dat

  • 利用PHP POST临时文件机制实现任意文件上传的方法详解

    目录 原理 如何获取临时文件名 $_FILES phpinfo glob 如何利用该文件 组合请求 延长临时文件存在时间 参考 原理 向 PHP 发送 Post 数据包,如果数据包中包含文件,无论 php 代码中有没有处理文件上传的逻辑,php 都会将这个文件保存为一个临时文件 该文件默认存储在 /tmp 目录中『可通过 php.ini 的 upload_tmp_dir 指定存储位置』 文件名为 php[6个随机字符],例:phpG4ef0q 若本次请求正常结束,临时文件会被自动删除 若非正常结

  • php安全攻防利用文件上传漏洞与绕过技巧详解

    目录 前言 文件上传漏洞的一些场景 场景一:前端js代码白名单判断.jpg|.png|.gif后缀 场景二:后端PHP代码检查Content-type字段 场景三:代码黑名单判断.asp|.aspx|.php|.jsp后缀 场景四:代码扩大黑名单判断 绕过方式--htaccsess: 绕过方式--大小写绕过: 场景五:一些复合判断 空格.点绕过(windows) ::$DATA绕过(windows) 双写绕过 %00截断 %0a绕过 图片马绕过 二次渲染绕过 条件竞争 /.绕过 前言 文件上传漏

  • 文件上传漏洞在惠信中的应用

    近来大家为dvbbs的文件上传漏洞兴奋不已,想想在其他的系统里面能不能用的上呢?我就以惠信新闻系统来抛砖引玉吧! 惠信新闻系统3.1 windows2000+sp4 先看这句代码.admin_uploadfilesave.asp ............... Server.mappath(formPath&file.FileName) ............................ 保存时用路径+文件名+后缀名,那我们可以用dvbbs上的漏洞了,只不过我们改的是文件名(因为系统有固定

  • 你不知道的文件上传漏洞php代码分析

    漏洞描述 开发中文件上传功能很常见,作为开发者,在完成功能的基础上我们一般也要做好安全防护. 文件处理一般包含两项功能,用户上传和展示文件,如上传头像. 文件上传攻击示例 upload.php <?php $uploaddir = 'uploads/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'],

  • ASP的chr(0)文件上传漏洞原理和解决方法介绍

    我们在用ASP开发文件上传功能的时候,为了防止用户上传木马程序,常常会限制一些文件的上传,常用的方法是判断一下上传文件的扩展名是否符合规定,可以用right字符串函数取出上传文件的文件名的后四位,这样很容易就能判断了,但是这里面有一个漏洞,非常危险,就是chr(0)漏洞,详情请接着往下看. 一.首先解释下什么是chr(0)? 在ASP中可以用chr()函数调用ASCII码,其中chr(0)表示调用的是一个结束字符,简单的说当一个字符串中包含chr(0)字符时,只能输出chr(0)前面的字符,ch

  • 网站中的隐形炸弹eWebEditor文件上传漏洞补丁

    打开Upload.ASP文件 找到下面代码: 复制代码 代码如下: <%     sAllowExt = Replace(UCase(sAllowExt), "ASP", "") %> 改为: 复制代码 代码如下: <%     sAllowExt = UCase(sAllowExt)     Do While InStr(sAllowExt, "ASP") Or InStr(sAllowExt, "CER"

  • 网络安全漏洞渗透测试之文件上传绕过思路案例详解

    目录 引言 案例一 案例二 案例三 案例四 其它场景&总结 引言 分享一些文件上传绕过的思路,下文内容多包含实战图片,所以打码会非常严重,可多看文字表达:本文仅用于交流学习, 由于传播.利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任. 案例一 一次项目渗透时,通过往png后缀随便加个字符可知该上传点为白名单上传,正常情况下无法绕过 通过观察接口信息,发现接口名字为UploadImg,猜测该接口用于图片上传,按照开发的习惯,保不准会存在te

随机推荐