前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache Solr 未授权上传(RCE)漏洞的原理分析与验证

Apache Solr 未授权上传(RCE)漏洞的原理分析与验证

作者头像
FB客服
发布2020-11-06 11:11:40
1.1K0
发布2020-11-06 11:11:40
举报
文章被收录于专栏:FreeBufFreeBuf

漏洞简介

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

受影响的版本:

  • Apache Solr6.6.0 -6.6.5
  • Apache Solr7.0.0 -7.7.3
  • Apache Solr8.0.0 -8.6.2

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

漏洞原理

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

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

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

漏洞验证

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

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

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

3、上传过程中触发断点

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

Trust 值为 false

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

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

无返回信息,未触发 debug

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

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

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

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

二、 8.6.3 版本修复分析

1、 Debug 运行 8.6.3 版本

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

3、触发断点

正确识别为不可信 configset

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

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

5、触发断点

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

6、同样可以创建 configset 成功

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

2testconfigset:

Evilconfigset4 :

均创建失败。

参考

  • 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://codesafe.qianxin.com”。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞简介
  • 漏洞原理
  • 漏洞验证
  • 参考
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档