漏洞简介

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

推荐阅读

Netlogon 特权提升漏洞(CVE-2020-1472)原理分析与验证

QEMU CVE-2020-14364 漏洞分析(含 PoC 演示)

题图:Pixabay License

本文由奇安信代码安全实验室原创。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

精彩推荐

安全扫描失败无法上传_Apache Solr 未授权上传(RCE)漏洞的原理分析与验证相关推荐

  1. Apache Solr 未授权上传(RCE)漏洞(CVE-2020-13957)的原理分析与验证

     聚焦源代码安全,网罗国内外最新资讯! 01 漏洞简介 Apache Solr 发布公告,旧版本的ConfigSet API 中存在未授权上传漏洞风险,被利用可能导致 RCE (远程代码执行). 受影 ...

  2. ajax的auto是true,致远OA ajax.do未授权上传/seeyon/autoinstall.do.css(莫名其妙的坑记录一下) CNVD-2021-01627...

    0x01 打seeyon的站用ajax.do未授权上传的时候遇见了神奇的事情,先上payload吧,下面shell的路径为/seeyon/bak0.jspx,哥斯拉默认密码和密钥. POST /see ...

  3. 安全扫描失败无法上传_重要通知丨开始上传!学院奖2020春季征集活动作品上传通道已经开启了!...

    Hi~各位同学们, 在经历了长达3个月居家创作期后, 你们的命题选好了没? 创作团队组好了没? 创意点策划出了没? 作品完稿了没? 不管怎样, 都要打起精神来了! 本次学院奖春季征集活动, 作品上传通 ...

  4. android多文件上传错误,微信多图上传解决android多图上传失败问题

    微信提供了文件上传的方法wx.uploadFile来上传我们的图片 wx.chooseImage({ success: function(res) { var tempFilePaths = res. ...

  5. element ui upload组件文件上传一次 后,不论是上传成功之后修改文件再上传还是上传失败重新上传,再次点击上传均无反应。

    问题: Element UI Upload 组件文件上传一次 后,不论是上传成功之后修改文件再上传还是上传失败重新上传,再次点击上传均无反应. 原因: 第一次上传文件后,浏览器还保存着我们已经上传的文 ...

  6. onethink后台使用上传驱动时,文件上传失败

    onethink后台最近使用阿里云的OSS上传驱动上传文件(thinkphp没有OSS驱动,自己百度找的一个驱动),碰到一个问题:后台建模的时候,选择了上传文件类型,但是实际上传失败,要么上传成功,插 ...

  7. 上传失败 已保存至草稿_抖音上传失败保存草稿箱怎么回事,抖音上传失败已保存至草稿箱...

    抖音上传失败保存草稿箱怎么回事,抖音上传失败已保存至草稿箱 抖音上传失败保存草稿箱的原因可能有: 1.网络信号不好,建议到一个信号好的地方上传: 2.抖音版本过低,建议升级最新版本: 3.视频格式不正 ...

  8. PDA手持扫描资产标签,盘点完成后将数据上传到PC端,固定资产系统查看盘点结果...

    固定资产管理系统介绍: 致力于研发条码技术.集成条码系统的专业性公司,针对客户的不同需求,提供一站式的企业条码系统解决方案:包括功能强大的软件系统.安全可靠的无线网络.坚固耐用的硬件系统.灵活易用的管 ...

  9. ftp服务器上传文件频率,ftp服务器上传文件速度多少

    ftp服务器上传文件速度多少 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 使 ...

最新文章

  1. Confluence 6 MySQL 输入你的数据库细节
  2. php 设置http 请求头信息,php设置http头
  3. 解决小米手机缩放窗口问题
  4. remoting和webservice的区别
  5. 7-spark学习笔记-spark性能调优
  6. Oracle启动和停止的方式详解
  7. mysql base64 乱码_PHP base64编码后解码乱码的解决办法
  8. 单片机实验:外部中断按键
  9. SpringBoot的Bean之基本定义与使用
  10. ARM:供给中国 160 亿颗芯片,继续授权华为!
  11. php order不管用,php – WooCommerce – get_order()不起作用,它返回零
  12. 戴尔笔记本怎么重装系统win11,win11系统安装方法
  13. mysql有没有mssql执行计划_MSSQL优化执行计划
  14. ubuntu使用CMake时报错compilation terminated找不到头文件解决方法
  15. 向云上迁移数据时如何避免停机和中断
  16. mac安装win7之后鼠标失灵_mac安装win7鼠标失灵怎么办
  17. 2018-2019-2 《网络对抗技术》Exp5 MSF基础应用 Week7-8 20165233
  18. 多个域名指向一个ip
  19. mac 端口被占用 解决方案
  20. Intel opreation mode

热门文章

  1. 2018年云栖社区值得订阅的11个精选技术期刊!
  2. 将 k8s 制作成 3D 射击游戏,好玩到停不下来 | 文末福利
  3. 500道Java 必备面试题答案(过后即删)
  4. i 智慧 | 深度广度并举,AWS容器服务再推利器!
  5. quill鼠标悬浮 出现提示_CHERRY MC8.1鼠标评测:超前设计延续军火箱信仰
  6. java 方法保存变量_java – 在初始化对象或将其保存为变量并调用该方法时,调用方法的速度更快...
  7. python 生成器_Python生成器中的GeneratorExit
  8. 宝塔 开启_宝塔面板安装完的一些列操作
  9. 控件设置相对位置_惊人的Divi转换控件!
  10. SpringBoot+Shiro+ehcache实现登录失败超次数锁定帐号