热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

这篇文章主要介绍了Vmwarevcenter未授权任意文件上传漏洞(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上传漏洞内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • FIN7后门工具伪装成白帽工具进行传播
    fin7,后门,工具,伪装,成,白, ... [详细]
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • Scrapy 爬取图片
    1.创建Scrapy项目scrapystartprojectCrawlMeiziTuscrapygenspiderMeiziTuSpiderhttps:movie.douban.c ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • Python爬取豆瓣数据实现过程解析
    这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
author-avatar
统计小屋_321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有