目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2021-21978 PoC — VMware View Planner 代码问题漏洞

来源
关联漏洞
标题: VMware View Planner 代码问题漏洞 (CVE-2021-21978)
Description:VMware View Planner是美国VMware公司的一个应用软件。提供了一种可捕获部署平台的整体可扩展性以及给定桌面内每个单独的应用程序操作性能的方法。 VMware View Planner 4.x prior to 4.6 存在安全漏洞,改漏洞允许具有网络访问权的未经授权的攻击者可以上传和执行一个特别制作的文件,导致在logupload容器中远程执行代码。
Description
带回显版本的漏洞利用脚本
介绍
# CVE-2021-21978
带回显版本的漏洞利用脚本,更简单的方式

## 0. 漏洞信息
>VMware View Planner Web管理界面存在一个上传日志功能文件的入口,没有进行认证且写入的日志文件路径用户可控,通过覆盖上传日志功能文件`log_upload_wsgi.py`,即可实现RCE

漏洞代码:

```python
def application(environ, start_response):
    logger.debug("application called")

    if environ['REQUEST_METHOD'] == 'POST':
        post = cgi.FieldStorage(
            fp=environ['wsgi.input'],
            environ=environ,
            keep_blank_values=True
        )

        # TO DO: Puth path in some config or read from config is already available
        resultBasePath = "/etc/httpd/html/vpresults"
        try:
            filedata = post["logfile"]
            metaData = post["logMetaData"]

            if metaData.value:
                logFileJson = LogFileJson.from_json(metaData.value)

            if not os.path.exists(os.path.join(resultBasePath, logFileJson.itrLogPath)):
                os.makedirs(os.path.join(resultBasePath, logFileJson.itrLogPath))

            if filedata.file:
                if (logFileJson.logFileType == agentlogFileType.WORKLOAD_ZIP_LOG):
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, WORKLOAD_LOG_ZIP_ARCHIVE_FILE_NAME.format(str(logFileJson.workloadID)))
                else:
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, logFileJson.logFileType)
                with open(filePath, 'wb') as output_file:
                    while True:
                        data = filedata.file.read(1024)
                        # End of file
                        if not data:
                            break
                        output_file.write(data)
```



## 1. 依赖

```
pip install requests
```



## 2. 检测

```
git clone https://github.com/skytina/CVE-2021-21978
cd CVE-2021-21978
python3 CVE-2021-21978.py https://192.168.80.3/
```

![image-20210305162131318](./images/detect.png)



## 3. 漏洞利用

漏洞利用脚本会重写`log_upload_wsgi.py`,让它成为一个后门

![image-20210305162339613](./images/backdoor.png)

## 4. 参考链接

漏洞利用来源:https://twitter.com/osama_hroot/status/1367258907601698816



VMware官方公告: https://www.vmware.com/security/advisories/VMSA-2021-0003.html



## 声明

- 工具仅用于安全人员安全测试与研究使用,任何未授权检测造成的直接或者间接的后果及损失,均由使用者本人负责。
- The tool is only used for security testing and research by security personnel. Any direct or indirect consequences and losses caused by unauthorized testing are the responsibility of the user.



如果觉得上面的内容有帮助的话,可以关注一下公众号



![](./images/qrcode_for_gh_0b1156c93460_258.jpg)
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →