zl程序教程

您现在的位置是:首页 >  工具

当前栏目

补天情报首发:Apache Solr 未授权上传(RCE)漏洞(CVE-2020-13957)风险通告原理分析与验证

Apache漏洞上传原理 分析 验证 2020 授权
2023-09-11 14:17:07 时间

codesafe [补天平台](javascript:void(0)😉 今天

漏洞简介

Apache Solr 发布公告,旧版本的 ConfigSet API 中存在未授权上传漏洞风险,被利用可能导致 RCE (远程代码执行)。

受影响的版本

Apache Solr 6.6.0 -6.6.5

Apache Solr 7.0.0 -7.7.3

Apache Solr 8.0.0 -8.6.2

安全专家建议用户尽快升级到安全版本,以解决风险。

漏洞原理

Solr可运行在SolrCloud(分布式集群模式)和Standalone Server(独立服务器模式)两种模式下,当以SolrCloud模式运行时,可通过Configset API 操作Configsets,包括创建、删除等。

对于通过Configset API 执行UPLOAD时,如果启用了身份验证(默认未开启),且该请求通过了身份验证,Solr会为该configset的设置“trusted”,否则该配置集不会被信任,不被信任的configset无法创建collection。

但当攻击者通过UPLOAD上传configset后,再基于此configset CREATE configset时,Solr不会为这个新的configset进行信任检查,导致可以使用未经信任检查的新configset创建collection。

漏洞验证

一.在8.6.2版本中进行攻击尝试

1.Debug运行8.6.2版本,默认开启在8983端口

img

2.使用样例构造上传的configset

img

3.上传过程中触发断点

img

可以看到,正确识别到configset不值得信任(缺少身份认证)

img

Trust值为false

img

4.使用上传的configset为母版,创建新的configset

http://localhost:8983/solr/admin/configs?action=CREATE&name=evilconfigset4&baseConfigSet=2testConfigSet&configSetProp.immutable=false&wt=xml&omitHeader=true

img

无返回信息,未触发debug

5.在web控制台可以查看到,创建evilconfigset4成功

img

6.使用直接上传的configset(例如2testconfigset)创建collection会失败

img

img

7.使用以2testconfigset为母版,创建的evilconfigset4,创建collection,可以成功

img

8.后续可以利用创建的collection的内容,调用solr组件进行远程代码执行(这里不做分析)

二.8.6.3 版本修复分析

1.Debug运行8.6.3版本

img

2.进行攻击尝试,类似8.6.2版本,上传configset

img

3.触发断点

img

正确识别为不可信configset

img

img

4.使用上传的2testconfigset为母版,创建新的configset

http://localhost:8983/solr/admin/configs?action=CREATE&name=evilconfigset4&baseConfigSet=2testConfigSet&configSetProp.immutable=false&wt=xml&omitHeader=true

5.触发断点

img

正确识别为不可信configset(注意,在8.6.2版本中,以已上传的configset为母版创建新configset时,并不会触发检查)

img

6.同样可以创建configset成功

img

7.在web控制台,分别使用直接上传的configset(2testconfigset)以及创建的(evilconfigset4)新建collection

2testconfigset :

img

img

Evilconfigset4 :

img

img

均创建失败。

参考

https://issues.apache.org/jira/secure/attachment/13012410/SOLR-14663.patch

https://issues.apache.org/jira/browse/SOLR-14663

https://github.com/apache/lucene-solr/commit/8f2f80bbb3c35fef036dce3162f4f03bf465e5f2

转载自https://mp.weixin.qq.com/s/XYLJwjOe8yhPhBhGTy59qw