首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >CVE-2017-12629-Apache Solr远程代码执行漏洞分析

CVE-2017-12629-Apache Solr远程代码执行漏洞分析

作者头像
XPcode7
发布2025-10-23 14:44:05
发布2025-10-23 14:44:05
1920
举报

CVE-2017-12629-Apache Solr远程代码执行漏洞分析

一、Apache Solr漏洞背景

Apache Solr 是一个流行的开源企业搜索平台,广泛应用于各种企业级应用和网站中。2017 年,该漏洞被发现并公布,引起了广泛关注。 Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。此次7.1.0之前版本总共爆出两个漏洞:XML实体扩展漏洞(XXE)和远程命令执行漏洞(RCE),二者可以连接成利用链,编号均为CVE-2017-12629。

二、漏洞详情
  1. 漏洞类型:该漏洞属于远程代码执行漏洞。
  2. 影响版本:特定版本的 Apache Solr 受到影响,具体版本范围因不同的发布和配置而异。
  3. 漏洞成因:漏洞主要是由于 Apache Solr 在某些情况下对用户输入的处理不当,导致攻击者可以通过构造特定的请求来执行任意系统命令。
三、漏洞危害
  1. 完全控制服务器:攻击者可以利用该漏洞在目标服务器上执行任意代码,从而完全控制服务器。这可能导致敏感信息泄露、数据被篡改、服务器被用于其他恶意目的等严重后果。
  2. 影响业务连续性:如果服务器被攻击,可能会导致业务中断,影响企业的正常运营。
  3. 潜在的横向扩展:攻击者可以利用被攻击的服务器作为跳板,进一步攻击其他系统,扩大攻击范围。
四、Apache Solr漏洞复现

启动虚拟靶机环境: Apache Solr 远程命令执行漏洞(CVE-2017-12629)靶机下载:CVE-2017-12629靶机官网下载链接

下载完成之后拉入ubuntu然后docker-compose up -d启动环境

代码语言:javascript
复制
docker-compose up –d
在这里插入图片描述
在这里插入图片描述

使用docker ps命令查看正在运行的虚拟靶机环境

代码语言:javascript
复制
docker ps
在这里插入图片描述
在这里插入图片描述

分别使用以下命令启动环境:

代码语言:javascript
复制
./start.sh
cd /etc/init.d/ && ./start.sh
在这里插入图片描述
在这里插入图片描述

使用“exit”命令离开靶机环境,回到物理服务器

在这里插入图片描述
在这里插入图片描述

打开新的终端窗口,查看IP地址:

代码语言:javascript
复制
ifconfig ens3
在这里插入图片描述
在这里插入图片描述

到这里环境就开启完毕了,然后我们回到攻击机Kali当中进行渗透测试 在Kali Linux中扫描靶机服务器:

代码语言:javascript
复制
nmap –sS 172.16.1.200(靶机IP地址)
在这里插入图片描述
在这里插入图片描述

分析扫描结果:22端口是靶机服务器的SSH服务,9999端口是Docker靶机环境占用的,但是并没有扫描出另一个被Docker靶机环境占用的8983端口。 Solr服务默认侦听8983端口,使用nc尝试连接靶机的8983端口: nc 172.16.1.200 8983

在这里插入图片描述
在这里插入图片描述

nc没有立即返回Connection refused(连接失败),而是一直在等待,说明靶机的8983端口处于开放状态。 使用浏览器访问地址看看web页面有什么可以发掘的点 http://172.16.1.200:8983

在这里插入图片描述
在这里插入图片描述

可以访问,但是表面没发现任何有用的信息,那接下来我们使用burpsuite进行抓取数据包分析。

设置浏览器代理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置Burpsuite代理,关闭拦截功能,直接通过数据包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

刷新页面,在Burpsuite中查看数据包

在这里插入图片描述
在这里插入图片描述

访问Apache Solr的主页,创建一个新的核心: 因为这是一个全新的环境,没有核心,所以必须先创建一个才能用来触发漏洞

在这里插入图片描述
在这里插入图片描述

新的核心已经创建成功

在这里插入图片描述
在这里插入图片描述

打开文件管理器,依次打开Home/solr目录,双击打开poc_create.txt

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

切换至Burpsuite,进入Repeater模块: 将刚才查看的poc_create.txt文件中的内容复制到Repeater模块,然后修改主机的IP地址为靶机服务器的地址和端口,然后修改执行命令: Host: 172.16.1.200:8983 touch /tmp/success

在这里插入图片描述
在这里插入图片描述

点击“Go”按钮,填入靶机服务器的IP和端口:

代码语言:javascript
复制
Host:172.16.1.200
Port:8983
在这里插入图片描述
在这里插入图片描述

保存后,再次点击“Go”按钮

在这里插入图片描述
在这里插入图片描述

查看服务器的返回信息在右侧显示

在这里插入图片描述
在这里插入图片描述

打开文件管理器,进入Home/solr目录,打开poc_update.txt

在这里插入图片描述
在这里插入图片描述

将poc_update.txt文件中的内容复制到Repeater模块,修改主机的IP地址为靶机Solr服务器的IP地址和端口

在这里插入图片描述
在这里插入图片描述

查看服务端返回结果

在这里插入图片描述
在这里插入图片描述

成功执行“touch /tmp/success”命令,在“/temp”目录下创建了一个名为“success”的空文件。 切换至Ubuntu靶机控制台,验证漏洞是否利用成功: 使用docker exec –it $(docker ps -q) /bin/bash命令进入靶机环境,使用ls /tmp命令查看tmp目录下的文件,success文件已被创建

在这里插入图片描述
在这里插入图片描述

然后切换至Kali Linux渗透机,打开Burpsuite。修改数据包,添加Payload,重新生成并发送数据包: 1)将poc_create.txt内容粘贴,替换args部分,并将Host修改为靶机IP地址:8983。使用nc –lvp 9999 –e /bin/bash命令监听端口并且反弹Shell,点击“Go”发送

在这里插入图片描述
在这里插入图片描述

2)将poc_update.txt文件中的内容复制到Repeater模块,修改主机的IP地址为靶机Solr服务器的地址和端口

在这里插入图片描述
在这里插入图片描述

接着连接靶机反弹的Shell:

代码语言:javascript
复制
nc 172.16.1.200 9999
pwd
ls
id
在这里插入图片描述
在这里插入图片描述

输入命令解释: 1、使用pwd命令查看当前所在的目录; 2、使用ls命令查看当前目录下的文件; 3、使用id命令查看当前的用户,结果显示成功获得了root最高权限。

五、Apache Solr漏洞修复建议
  1. 升级版本:Apache 官方发布了针对该漏洞的安全补丁,用户应及时升级到受支持的版本,以消除漏洞风险。
  2. 配置调整:检查和调整 Solr 的配置,确保安全设置正确,限制不必要的功能和访问权限。
  3. 安全监控:加强对服务器的安全监控,及时发现异常行为和潜在的攻击迹象,以便采取相应的措施。

总结,CVE-2017-12629 是一个严重的安全漏洞,对使用 Apache Solr 的企业和组织构成了重大威胁。及时采取有效的修复措施和安全防护措施是至关重要的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CVE-2017-12629-Apache Solr远程代码执行漏洞分析
    • 一、Apache Solr漏洞背景
    • 二、漏洞详情
    • 三、漏洞危害
    • 四、Apache Solr漏洞复现
    • 五、Apache Solr漏洞修复建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档