当前位置: 首页 > news >正文

MybatisPlus存在 sql 注入漏洞(CVE-2023-25330)解决办法

首先我们了解下这个漏洞是什么?

MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件,可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。

MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在构造 SQL 表达式时默认情况下未对 tenant(租户)的 ID 值进行过滤,当程序启用了 TenantPlugin 并且 tenant(租户)ID 可由外部用户控制时,攻击者可利用该漏洞进行 sql 注入,接管程序的数据库或向操作系统发送恶意命令。用户可通过对租户 ID 进行过滤缓解此漏洞。

影响版本 <3.5.1

解决办法

1.不启用tenantId

2.必须使用tenantId的话,加过滤器,对tenantId做处理

Test Version: 3.4.2

com.example.demo.config.MybatisPlusConfig 

Pasted image 20230201155305.png

 

Pasted image 20230201155305.png

com.example.demo.common.TenantHolder 

Pasted image 20230201155404.png

 

Interface for testing: /user?tid= will returns a specified tenant data record.

com.example.demo.controller.HelloController 

Pasted image 20230201155458.png

 

db:

CREATE TABLE `users` (  `id` int(32) NOT NULL AUTO_INCREMENT,  `name` varchar(32) NOT NULL,  `tenant_id` varchar(64) NOT NULL,  PRIMARY KEY (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Test interface using blank parameters:

http://localhost:8080/user?tid= 

Pasted image 20230201155910.png

 

Pasted image 20230201155910.png

Use ' or 1=1 and '123'='123 to perform sql injection and get all the data 

Pasted image 20230201155957.png

 

http://www.lryc.cn/news/110458.html

相关文章:

  • 【java】使用maven完成一个servlet项目
  • 前端Vue入门-day07-Vuex入门
  • 2023再谈前端状态管理
  • ffmpeg SDL播放器--播放udp组播流
  • __attribute__((noreturn))
  • 遮挡边界处的深度补全和双曲面外推
  • LK-99室温超导激发万万亿市场,将对我们的生活产生哪些影响?
  • 子集——力扣78
  • 【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(8 月 2 日论文合集)
  • JDK中「SPI」原理分析
  • DSL:数字用户线路(Digital Subscriber Line)
  • Java集合ArrayList详解
  • React Dva项目 Model中编写与调用异步函数
  • 小程序自定义tabBar+Vant weapp
  • Dubbo+Zookeeper使用
  • 短视频平台视频怎么去掉水印?
  • Stable Diffusion - Style Editor 和 Easy Prompt Selector 提示词插件配置
  • Stable Diffusion - SDXL 模型测试 (DreamShaper 和 GuoFeng v4) 与全身图像参数配置
  • 中介者模式(Mediator)
  • SpringBoot使用@Autowired将实现类注入到List或者Map集合中
  • 【linux目录的权限和粘滞位】
  • TP DP PP 并行训练方法介绍
  • P005 – Python操作符、操作数和表达式
  • SQL92 SQL99 语法 Oracle 、SQL Server 、MySQL 多表连接、Natural 、USING
  • 物联网平台使用笔记
  • Python-flask项目入门
  • 基于数据库 Sqlite3 的 root 管理系统
  • Hadoop 之 Hive 4.0.0-alpha-2 搭建(八)
  • vue3常用API之学习笔记
  • Python 程序设计入门(005)—— 字符串操作