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

MyBatis的注入问题

对之前文章的补充:MyBatis中的#{}与${}注入问题----原文链接

前言:

MyBatis是一个流行的Java持久层框架,用于将对象与数据库中的数据进行映射。然而,如果不当使用,MyBatis也可能受到诸如SQL注入这类的安全问题的影响。
SQL注入是一种攻击技术,攻击者通过在输入中插入恶意SQL语句片段,企图对数据库执行非预期的操作。在MyBatis中,SQL注入通常发生在以下几个场景:
动态SQL: MyBatis允许你编写动态SQL,根据不同的条件拼接不同的SQL语句。如果你直接将用户的输入作为条件拼接到SQL语句中,而没有进行适当的转义或验证,就可能导致SQL注入。

  • 接着上面文章,发现一般在实际情况 中会存在以下几个方面的注入情况:

Mybatis Like 注入

在这里插入图片描述
这里如果是正常的查询请求,会返回正常的查询结果,然而在使用了恶意的注入语句,就可以直接查看到注入的结果,存在注入漏洞
通过在这里直接搜索相关的注入写法在这里插入图片描述
就能发现如下的查询语句:
在这里插入图片描述
在这里插入图片描述
这就存在SQL注入漏洞了,所以需要规范代码写法:
Select * from users where username like concat('%',#{username}, '%')

Mybatis Order By 注入

直接查看源代码中的写法
在这里插入图片描述
Order By 注入也是一样,在正常的查询中,添加恶意的代码,就能直接造成代码的注入,这里报错回显
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Mybatis In 注入

在这里插入图片描述
in之后多个id查询时使用 # 同样会报错,因此很多研发会采用${}来解决,从而造成SQL注入,
直接使用poc:1,2,3) and (updatexml(1,concat(0x7e,(select user())),0))-- -
在这里插入图片描述


这里主要是对之前学习的补充,完善整个注入的内容,感谢大佬指点交流

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

相关文章:

  • 基于springboot的评分评教管理系统
  • C嘎嘎入门篇:类和对象(2)
  • 数据库 - Mongo数据库
  • 工业控制过等保三级需要的网络安全设备及详细讲解
  • Android开发高级篇:MVVM框架与数据双向绑定
  • 智能招聘系统小程序的设计
  • Wireshark抓包GRPC协议查看Protobuf编码内容
  • selenium 强制、隐式、显示等待(11种预置条件)
  • ffmpeg拉取rtsp网络视频流报错解析
  • c# iTextSharp 读取PDF
  • <<迷雾>> 第5章 从逻辑学到逻辑电路(3)--与门 示例电路
  • Java应用的数据库连接池连接超时处理
  • 机器学习:opencv--摄像头OCR
  • 基于二分查找的动态规划 leetcode 300.最长递增子序列
  • Java8 IntStream流sum的Bug
  • PCL 索引空间采样
  • PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(三)
  • 【无标题】logistic映射
  • 基于Node.js+Express+MySQL+VUE科研成果网站发布查看科研信息科研成果论文下载免费安装部署
  • 提升C++代码质量的一些建议
  • 起重机防摇摆技术如何达标-武汉正向科技
  • [大语言模型-论文精读] MoRAG - 基于多部分融合的检索增强型人体动作生成
  • 解决端口被占用
  • 【递归】7. leetcode 404 左叶子之和
  • react+antdMobie实现消息通知页面样式
  • Git 撤销一个已经push到远端仓库的commit
  • lambda表达式底层实现
  • 鸿蒙NEXT开发-组件事件监听和状态管理(基于最新api12稳定版)
  • 《More Effective C++》的学习
  • Leetcode面试经典150题-322.零钱兑换